[Lldb-commits] [lldb] r116181 - in /lldb/trunk/source/Symbol: ClangASTContext.cpp ClangASTType.cpp Type.cpp
Greg Clayton
gclayton at apple.com
Sun Oct 10 19:25:35 PDT 2010
Author: gclayton
Date: Sun Oct 10 21:25:34 2010
New Revision: 116181
URL: http://llvm.org/viewvc/llvm-project?rev=116181&view=rev
Log:
Fixed an issue where objc types weren't ever getting fully resolved (beyond
forward declarations).
Modified:
lldb/trunk/source/Symbol/ClangASTContext.cpp
lldb/trunk/source/Symbol/ClangASTType.cpp
lldb/trunk/source/Symbol/Type.cpp
Modified: lldb/trunk/source/Symbol/ClangASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTContext.cpp?rev=116181&r1=116180&r2=116181&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ClangASTContext.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp Sun Oct 10 21:25:34 2010
@@ -784,7 +784,7 @@
if (language == eLanguageTypeObjC)
{
- bool isForwardDecl = false;
+ bool isForwardDecl = true;
bool isInternal = false;
return CreateObjCClass (name, decl_ctx, isForwardDecl, isInternal);
}
Modified: lldb/trunk/source/Symbol/ClangASTType.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTType.cpp?rev=116181&r1=116180&r2=116181&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ClangASTType.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTType.cpp Sun Oct 10 21:25:34 2010
@@ -825,6 +825,16 @@
return tag_decl->getDefinition() != NULL;
return false;
}
+ else
+ {
+ clang::ObjCObjectType *objc_class_type = dyn_cast<clang::ObjCObjectType>(qual_type);
+ if (objc_class_type)
+ {
+ clang::ObjCInterfaceDecl *class_interface_decl = objc_class_type->getInterface();
+ if (class_interface_decl->isForwardDecl())
+ return false;
+ }
+ }
return true;
}
Modified: lldb/trunk/source/Symbol/Type.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/Type.cpp?rev=116181&r1=116180&r2=116181&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/Type.cpp (original)
+++ lldb/trunk/source/Symbol/Type.cpp Sun Oct 10 21:25:34 2010
@@ -529,15 +529,14 @@
// definition.
m_symbol_file->ResolveClangOpaqueTypeDefinition (m_clang_qual_type);
}
- else
- {
- // If we have an encoding type, then we need to make sure it is
- // resolved appropriately
- Type *encoding_type = GetEncodingType ();
- if (encoding_type != NULL)
- encoding_type->ResolveClangType (forward_decl_is_ok);
- }
}
+
+ // If we have an encoding type, then we need to make sure it is
+ // resolved appropriately
+ Type *encoding_type = GetEncodingType ();
+ if (encoding_type != NULL)
+ encoding_type->ResolveClangType (forward_decl_is_ok);
+
// if (g_depth > 0)
// --g_depth;
return m_clang_qual_type != NULL;
More information about the lldb-commits
mailing list