summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/ClangASTImporter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Symbol/ClangASTImporter.cpp')
-rw-r--r--lldb/source/Symbol/ClangASTImporter.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/lldb/source/Symbol/ClangASTImporter.cpp b/lldb/source/Symbol/ClangASTImporter.cpp
index ef0dcfe4c1d..92c2325dd40 100644
--- a/lldb/source/Symbol/ClangASTImporter.cpp
+++ b/lldb/source/Symbol/ClangASTImporter.cpp
@@ -186,14 +186,26 @@ clang::Decl
to_namespace_decl->setHasExternalVisibleStorage();
}
- if (isa<ObjCInterfaceDecl>(from))
+ if (ObjCInterfaceDecl *from_interface_decl = dyn_cast<ObjCInterfaceDecl>(from))
{
ObjCInterfaceDecl *to_interface_decl = dyn_cast<ObjCInterfaceDecl>(to);
+ to_interface_decl->setHasExternalLexicalStorage();
to_interface_decl->setHasExternalVisibleStorage();
- if (!to_interface_decl->isForwardDecl())
- to_interface_decl->setExternallyCompleted();
+ if (to_interface_decl->isForwardDecl())
+ to_interface_decl->completedForwardDecl();
+
+ to_interface_decl->setExternallyCompleted();
+
+ if (log)
+ log->Printf(" [ClangASTImporter] Imported %p, a %s named %s%s%s%s",
+ to,
+ ((clang::Decl*)from_interface_decl)->getDeclKindName(),
+ from_interface_decl->getName().str().c_str(),
+ (to_interface_decl->hasExternalLexicalStorage() ? " Lexical" : ""),
+ (to_interface_decl->hasExternalVisibleStorage() ? " Visible" : ""),
+ (to_interface_decl->isForwardDecl() ? " Forward" : ""));
}
return clang::ASTImporter::Imported(from, to);
OpenPOWER on IntegriCloud