[clang] [clang] Add builtin_get_vtable_pointer and virtual_member_address (PR #135469)

Oliver Hunt via cfe-commits cfe-commits at lists.llvm.org
Sun Apr 13 12:16:31 PDT 2025


ojhunt wrote:

> > I just noticed there's no documentation for `__builtin_virtual_member_address()` so I'm addressing that.
> > Due to code drift and time I realized that they disagree as to whether they should take `C*` or `C&` so I'm going to make them both accept either (existing code means we can't unify on one or the other, but also there's no real reason to not accept either and simply do the correct thing)
> 
> most of our builtins take pointers. Accepting both seems unwise. people might want to do interesting things in sfinae context and if we accept everything and anything it will end up causing more pain than it alleviates.

Hmmm, I'll revert to only supporting pointers in ``get_vtable_pointer`` but there's existing code dependent on the non-pointer argument to virtual_member_address which makes it difficult to switch to having a pointer argument.

https://github.com/llvm/llvm-project/pull/135469


More information about the cfe-commits mailing list