[c++20] consteval functions don't get vtable slots.
authorRichard Smith <richard@metafoo.co.uk>
Tue, 30 Jun 2020 22:53:08 +0000 (15:53 -0700)
committerRichard Smith <richard@metafoo.co.uk>
Wed, 1 Jul 2020 01:22:09 +0000 (18:22 -0700)
commit4eff2beefb2b655fc02d35de235fc86d72d05755
tree3615c3b4ec8183ca33097adfe48824e4a968ffb7
parent56fc6b987ab8a235cea9ae13fb8d6430aec8c30d
[c++20] consteval functions don't get vtable slots.

For the Itanium C++ ABI, this implements the rule added in
https://github.com/itanium-cxx-abi/cxx-abi/pull/83

For the MS C++ ABI, this implements the direction that seemed most
plausible based on personal correspondence with MSVC developers, but is
subject to change as they decide their ABI rule.
clang/include/clang/AST/VTableBuilder.h
clang/lib/AST/RecordLayoutBuilder.cpp
clang/lib/AST/VTableBuilder.cpp
clang/lib/CodeGen/CGExprConstant.cpp
clang/test/CodeGenCXX/vtable-consteval.cpp [new file with mode: 0644]