[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