[Lldb-commits] [lldb] r180818 - <rdar://problem/13776113>

Greg Clayton gclayton at apple.com
Tue Apr 30 15:29:29 PDT 2013


Author: gclayton
Date: Tue Apr 30 17:29:29 2013
New Revision: 180818

URL: http://llvm.org/viewvc/llvm-project?rev=180818&view=rev
Log:
<rdar://problem/13776113>

Dynamic type resolution not working for typedef's such as the __ptr_ member in the C++11 std::shared_ptr.


Modified:
    lldb/trunk/source/Symbol/ClangASTContext.cpp

Modified: lldb/trunk/source/Symbol/ClangASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTContext.cpp?rev=180818&r1=180817&r2=180818&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ClangASTContext.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp Tue Apr 30 17:29:29 2013
@@ -5780,7 +5780,7 @@ ClangASTContext::IsPossibleDynamicType (
     QualType pointee_qual_type;
     if (clang_type)
     {
-        QualType qual_type (QualType::getFromOpaquePtr(clang_type));
+        QualType qual_type (QualType::getFromOpaquePtr(clang_type).getCanonicalType());
         const clang::Type::TypeClass type_class = qual_type->getTypeClass();
         bool success = false;
         switch (type_class)
@@ -5837,7 +5837,7 @@ ClangASTContext::IsPossibleDynamicType (
             // Check to make sure what we are pointing too is a possible dynamic C++ type
             // We currently accept any "void *" (in case we have a class that has been
             // watered down to an opaque pointer) and virtual C++ classes.
-            const clang::Type::TypeClass pointee_type_class = pointee_qual_type->getTypeClass();
+            const clang::Type::TypeClass pointee_type_class = pointee_qual_type.getCanonicalType()->getTypeClass();
             switch (pointee_type_class)
             {
                 case clang::Type::Builtin:





More information about the lldb-commits mailing list