[PATCH] D108479: [Clang] Add __builtin_addressof_nocfi

Jessica Clarke via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Nov 13 19:07:13 PST 2021

jrtc27 added a comment.

In D108479#3110003 <https://reviews.llvm.org/D108479#3110003>, @rjmccall wrote:

> `std::addressof(&someFunction)` certainly ought to return a signed pointer under ptrauth, so if your goal here is to get a completely unadorned symbol address, I think you do need a different builtin, and it probably ought to return a `void*` to emphasize that it shouldn't be used as a normal value.  Maybe it should even be semantically restricted to require a constant decl reference as its operand?  Related and perhaps illuminating question: if it were implementable, would you also want to force the suppression of lazy-binding thunks and/or decorations like the THUMB bit?

Similarly, should it point to the descriptor or the entry point for ABIs with function descriptors? Personally I think trying to generalise this builtin just opens a huge can of worms when you look at other architectures and ABIs (and what it does can have implications for CHERI/Morello where we have various weird experimental ABIs), so you may just be best off having the original specialised builtin with very clear semantics.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list