]> granicus.if.org Git - clang/commitdiff
Only try to import a definition if there is an definition to import.
authorDouglas Gregor <dgregor@apple.com>
Wed, 25 Jan 2012 01:13:20 +0000 (01:13 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 25 Jan 2012 01:13:20 +0000 (01:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148894 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ASTImporter.cpp

index 623f912cd5953ab0a6dd4ecc77ed8a897ef9124f..d6139de3fc00e9c73a5c375726296057191a0e08 100644 (file)
@@ -4193,8 +4193,11 @@ DeclContext *ASTImporter::ImportContext(DeclContext *FromDC) {
     // When we're using a record declaration as a context, we need it to have
     // a definition.
     ASTNodeImporter Importer(*this);
-    Importer.ImportDefinition(cast<RecordDecl>(FromDC), ToRecord,
-                              ASTNodeImporter::IDK_Basic);
+    
+    RecordDecl *FromRecord = cast<RecordDecl>(FromDC);
+    if (FromRecord->isCompleteDefinition())
+      Importer.ImportDefinition(FromRecord, ToRecord,
+                                ASTNodeImporter::IDK_Basic);
   }
   
   return ToDC;