[Lldb-commits] [lldb] r203600 - Fixed a problem where the expression parser was

Sean Callanan scallanan at apple.com
Tue Mar 11 12:34:05 PDT 2014


Author: spyffe
Date: Tue Mar 11 14:34:04 2014
New Revision: 203600

URL: http://llvm.org/viewvc/llvm-project?rev=203600&view=rev
Log:
Fixed a problem where the expression parser was
erroneously completing Objective-C classes sourced
from the Objective-C runtime without checking if
there was an authoritative version in the debug
information.

<rdar://problem/16065049>

Modified:
    lldb/trunk/source/Expression/ClangASTSource.cpp

Modified: lldb/trunk/source/Expression/ClangASTSource.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangASTSource.cpp?rev=203600&r1=203599&r2=203600&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangASTSource.cpp (original)
+++ lldb/trunk/source/Expression/ClangASTSource.cpp Tue Mar 11 14:34:04 2014
@@ -316,6 +316,22 @@ ClangASTSource::CompleteType (clang::Obj
         dumper.ToLog(log, "      [COID] ");    
     }
     
+    Decl *original_decl = NULL;
+    ASTContext *original_ctx = NULL;
+    
+    if (m_ast_importer->ResolveDeclOrigin(interface_decl, &original_decl, &original_ctx))
+    {
+        if (ObjCInterfaceDecl *original_iface_decl = dyn_cast<ObjCInterfaceDecl>(original_decl))
+        {
+            ObjCInterfaceDecl *complete_iface_decl = GetCompleteObjCInterface(original_iface_decl);
+            
+            if (complete_iface_decl && (complete_iface_decl != original_iface_decl))
+            {
+                m_ast_importer->SetDeclOrigin(interface_decl, original_iface_decl);
+            }
+        }
+    }
+    
     m_ast_importer->CompleteObjCInterfaceDecl (interface_decl);
     
     if (interface_decl->getSuperClass() &&





More information about the lldb-commits mailing list