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

Reply via email to