summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2016-01-23 01:20:18 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2016-01-23 01:20:18 +0000
commit93987df0fdfcee054b3e8c79ed83f7e6db1438fb (patch)
tree3ec6ff1e14d207b2214e9641d1090eeea3051788 /clang/lib/CodeGen
parent9ea8033d1bce7e29af3f8faaecca2cf5ebf96698 (diff)
downloadbcm5719-llvm-93987df0fdfcee054b3e8c79ed83f7e6db1438fb.tar.gz
bcm5719-llvm-93987df0fdfcee054b3e8c79ed83f7e6db1438fb.zip
[cfi] Do not emit bit set entry for available_externally vtables.
In the Itanium ABI, vtable may be emitted speculatively as an available_externally global. Such vtable may not be present at the link time and should not have a corresponding CFI bit set entry. llvm-svn: 258596
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/ItaniumCXXABI.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp
index 8b6322a4b75..e2106342922 100644
--- a/clang/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp
@@ -1496,7 +1496,8 @@ void ItaniumCXXABI::emitVTableDefinitions(CodeGenVTables &CGVT,
DC->getParent()->isTranslationUnit())
EmitFundamentalRTTIDescriptors();
- CGM.EmitVTableBitSetEntries(VTable, VTLayout);
+ if (!VTable->isDeclarationForLinker())
+ CGM.EmitVTableBitSetEntries(VTable, VTLayout);
}
bool ItaniumCXXABI::isVirtualOffsetNeededForVTableField(
OpenPOWER on IntegriCloud