]> granicus.if.org Git - clang/commit
CFI: Emit correct bit set information if RTTI is disabled under MS ABI.
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 9 Jul 2015 19:56:14 +0000 (19:56 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 9 Jul 2015 19:56:14 +0000 (19:56 +0000)
commitdfcc8c61baefc95098070edfe5e9f4683edb86a5
treeb8c419e42eabc353c9253647f3264f59cfe66ad1
parentfe95d3d2cb92e732a2c483885de7dea1287e07d7
CFI: Emit correct bit set information if RTTI is disabled under MS ABI.

We were previously creating bit set entries at virtual table offset
sizeof(void*) unconditionally under the Microsoft C++ ABI. This is incorrect
if RTTI data is disabled; in that case the "address point" is at offset
0. This change modifies bit set emission to take into account whether RTTI
data is being emitted.

Also make a start on a blacklisting scheme for records.

Differential Revision: http://reviews.llvm.org/D11048

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@241845 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGVTables.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/MicrosoftCXXABI.cpp
test/CodeGenCXX/cfi-ms-rtti.cpp [new file with mode: 0644]