diff options
author | Adrian Prantl <aprantl@apple.com> | 2016-08-22 22:23:58 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2016-08-22 22:23:58 +0000 |
commit | a72972b985e4553a8e607687bfb7e32bff25aa85 (patch) | |
tree | 78b1322eadd4744c71d7e7dbb04f7341592526f9 /clang/lib/CodeGen | |
parent | 9f5c83b914ff8d7094fef580cf86ecee784ad008 (diff) | |
download | bcm5719-llvm-a72972b985e4553a8e607687bfb7e32bff25aa85.tar.gz bcm5719-llvm-a72972b985e4553a8e607687bfb7e32bff25aa85.zip |
Module debug info: Don't assert when encountering an incomplete definition
in isDefinedInClangModule() and assume that the incomplete definition
is not defined in the module.
This broke the -gmodules self host recently.
rdar://problem/27894367
llvm-svn: 279485
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index a153193a53f..af0cd02ed2f 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -1655,7 +1655,8 @@ static bool isDefinedInClangModule(const RecordDecl *RD) { if (!RD->isExternallyVisible() && RD->getName().empty()) return false; if (auto *CXXDecl = dyn_cast<CXXRecordDecl>(RD)) { - assert(CXXDecl->isCompleteDefinition() && "incomplete record definition"); + if (!CXXDecl->isCompleteDefinition()) + return false; auto TemplateKind = CXXDecl->getTemplateSpecializationKind(); if (TemplateKind != TSK_Undeclared) { // This is a template, check the origin of the first member. |