erichkeane added a comment. To continue my point... an ifunc/resolver is just like a function, in that a non-defined declaration is completely valid, since it refers to a definition in a separate TU. It makes sense to me that a resolver could do the same.
Actually... I question the diagnostic changes in this patch now. Why SHOULDN'T this work: TU A: void *resolver(void); void *ifunc(void) __attribute__((ifunc("resolver"))); TU B: int impl(void) { return 42; } void *resolver(void) { return impl; } Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112349/new/ https://reviews.llvm.org/D112349 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits