[PATCH] D122608: Fix behavior of ifuncs with 'used' extern "C" static functions

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 28 12:52:15 PDT 2022


aaron.ballman added a reviewer: rjmccall.
aaron.ballman added a subscriber: rjmccall.
aaron.ballman added a comment.

CodeGen is not my wheelhouse, so I've added @rjmccall in case he spots something I've missed. This seems reasonable to me though.



================
Comment at: clang/lib/CodeGen/CodeGenModule.cpp:6318
 
+/// IF all uses of the GV are from an IFunc resolver, which can happen when the
+/// IFunc resolver is a static-function, but the name ends up being different,
----------------



================
Comment at: clang/lib/CodeGen/CodeGenModule.cpp:6371
+      // original static function, since IFuncs aren't allowed to refer to the
+      // alias directly.  SO, we have to de-alias it here.  We have to make sure
+      // the correct bitcasts happen, so we have to re-look up the function.
----------------



CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122608/new/

https://reviews.llvm.org/D122608



More information about the cfe-commits mailing list