diff --git a/lldb/source/Expression/ClangASTSource.cpp b/lldb/source/Expression/ClangASTSource.cpp index 316efdf9c149..b55292d84a8d 100644 --- a/lldb/source/Expression/ClangASTSource.cpp +++ b/lldb/source/Expression/ClangASTSource.cpp @@ -318,6 +318,10 @@ ClangASTSource::CompleteType (clang::ObjCInterfaceDecl *interface_decl) m_ast_importer->CompleteObjCInterfaceDecl (interface_decl); + if (interface_decl->getSuperClass() && + interface_decl->getSuperClass() != interface_decl) + CompleteType(interface_decl->getSuperClass()); + if (log) { log->Printf(" [COID] After:"); diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp index 87c984ddcfb9..64ef98297cd2 100644 --- a/lldb/source/Expression/ClangExpressionDeclMap.cpp +++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp @@ -1605,6 +1605,8 @@ ClangExpressionDeclMap::AddOneVariable (NameSearchContext &context, VariableSP v { if (const TagType *tag_type = dyn_cast(parser_type)) CompleteType(tag_type->getDecl()); + if (const ObjCObjectPointerType *objc_object_ptr_type = dyn_cast(parser_type)) + CompleteType(objc_object_ptr_type->getInterfaceDecl()); }