Author: enrico
Date: Wed Jan 14 17:58:18 2015
New Revision: 226062

URL: http://llvm.org/viewvc/llvm-project?rev=226062&view=rev
Log:
Reenable the logic to take an integer value and attempt to "po" it as an ObjC 
object

While there is quite a bit of potential for mishaps due to tagged pointers, and 
after quite some internal discussion, this seems a saner behavior given how 
"po" stands for "print OBJECT". The argument being that we should make at least 
some sensible attempt to print the thing the user passed as-if it was an object

Fixes rdar://19423124


Modified:
    
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp

Modified: 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp?rev=226062&r1=226061&r2=226062&view=diff
==============================================================================
--- 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
 (original)
+++ 
lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
 Wed Jan 14 17:58:18 2015
@@ -42,8 +42,11 @@ using namespace lldb_private;
 bool
 AppleObjCRuntime::GetObjectDescription (Stream &str, ValueObject &valobj)
 {
-    // ObjC objects can only be pointers
-    if (!valobj.IsPointerType())
+    ClangASTType clang_type(valobj.GetClangType());
+    bool is_signed;
+    // ObjC objects can only be pointers (or numbers that actually represents 
pointers
+    // but haven't been typecast, because reasons..)
+    if (!clang_type.IsIntegerType (is_signed) && !clang_type.IsPointerType ())
         return false;
     
     // Make the argument list: we pass one arg, the address of our pointer, to 
the print function.


_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to