diff options
author | David Blaikie <dblaikie@gmail.com> | 2017-01-30 06:36:08 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2017-01-30 06:36:08 +0000 |
commit | b11c87324e9b97a60a60975f8ab848b2c734b765 (patch) | |
tree | 15765e947fade2a16bd75e3a16de33160ad68c19 /clang/lib/CodeGen/CGVTables.cpp | |
parent | a38cb204a37cd7d32a29ca4da0528cdbb6cd687f (diff) | |
download | llvm-b11c87324e9b97a60a60975f8ab848b2c734b765.zip llvm-b11c87324e9b97a60a60975f8ab848b2c734b765.tar.gz llvm-b11c87324e9b97a60a60975f8ab848b2c734b765.tar.bz2 |
Reapply "DebugInfo: Omit class definitions even in the presence of available_externally vtables"
Accounts for a case that caused an assertion failure by attempting to
query for the vtable linkage of a non-dynamic type.t
This reverts commit r292801.
llvm-svn: 293462
Diffstat (limited to 'clang/lib/CodeGen/CGVTables.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGVTables.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGVTables.cpp b/clang/lib/CodeGen/CGVTables.cpp index 04c5cfe..24c7f15 100644 --- a/clang/lib/CodeGen/CGVTables.cpp +++ b/clang/lib/CodeGen/CGVTables.cpp @@ -744,9 +744,10 @@ CodeGenModule::getVTableLinkage(const CXXRecordDecl *RD) { switch (keyFunction->getTemplateSpecializationKind()) { case TSK_Undeclared: case TSK_ExplicitSpecialization: - assert((def || CodeGenOpts.OptimizationLevel > 0) && - "Shouldn't query vtable linkage without key function or " - "optimizations"); + assert((def || CodeGenOpts.OptimizationLevel > 0 || + CodeGenOpts.getDebugInfo() != codegenoptions::NoDebugInfo) && + "Shouldn't query vtable linkage without key function, " + "optimizations, or debug info"); if (!def && CodeGenOpts.OptimizationLevel > 0) return llvm::GlobalVariable::AvailableExternallyLinkage; |