Author: gclayton
Date: Fri Dec  9 11:54:59 2016
New Revision: 289233

URL: http://llvm.org/viewvc/llvm-project?rev=289233&view=rev
Log:
Fix i386 being able to show member variables correctly by not returning empty 
objective C types from the runtime.

We don't parse ObjC v1 types from the runtime metadata like we do for ObjC v2, 
but doing so by creating empty types was ruining the i386 v1 debugging 
experience.

<rdar://problem/24093343>


Modified:
    
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
    
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m
    
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
    
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py?rev=289233&r1=289232&r2=289233&view=diff
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
 (original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py
 Fri Dec  9 11:54:59 2016
@@ -186,6 +186,7 @@ class FoundationTestCase2(TestBase):
                 "be completed."])
         self.runCmd("process continue")
 
+    @expectedFailureAll(archs=["i[3-6]86"], 
bugnumber="<rdar://problem/28814052>")
     def test_NSError_p(self):
         """Test that p of the result of an unknown method does require a 
cast."""
         self.build()

Modified: 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m?rev=289233&r1=289232&r2=289233&view=diff
==============================================================================
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m 
(original)
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/test.m 
Fri Dec  9 11:54:59 2016
@@ -25,10 +25,10 @@ int main()
     ThingSummer *summer = [ThingSummer alloc];
     struct things_to_sum tts = { 2, 3, 4 };
     int ret = [summer sumThings:tts];
-
     NSRect rect = {{0, 0}, {10, 20}};    
-
-    // Set breakpoint here.
-    return rect.origin.x;
+       // The Objective C V1 runtime won't read types from metadata so we need
+       // NSValue in our debug info to use it in our test.
+       NSValue *v = [NSValue valueWithRect:rect];
+    return rect.origin.x; // Set breakpoint here.
   }
 }

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp?rev=289233&r1=289232&r2=289233&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
 Fri Dec  9 11:54:59 2016
@@ -435,8 +435,5 @@ void AppleObjCRuntimeV1::UpdateISAToDesc
 }
 
 DeclVendor *AppleObjCRuntimeV1::GetDeclVendor() {
-  if (!m_decl_vendor_ap.get())
-    m_decl_vendor_ap.reset(new AppleObjCDeclVendor(*this));
-
-  return m_decl_vendor_ap.get();
+  return nullptr;
 }

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp?rev=289233&r1=289232&r2=289233&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
 Fri Dec  9 11:54:59 2016
@@ -249,9 +249,8 @@ clang::QualType AppleObjCTypeEncodingPar
     }
 
     DeclVendor *decl_vendor = m_runtime.GetDeclVendor();
-
-    assert(decl_vendor); // how are we parsing type encodings for expressions 
if
-                         // a type vendor isn't in play?
+    if (!decl_vendor)
+      return clang::QualType();
 
     const bool append = false;
     const uint32_t max_matches = 1;


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to