yvvan created this revision.
yvvan added reviewers: erikjv, arphaman, michaelwu.

Currently the resulting type is always invalid in such case.


https://reviews.llvm.org/D51281

Files:
  tools/libclang/CXType.cpp


Index: tools/libclang/CXType.cpp
===================================================================
--- tools/libclang/CXType.cpp
+++ tools/libclang/CXType.cpp
@@ -427,6 +427,7 @@
   if (!TP)
     return MakeCXType(QualType(), GetTU(CT));
 
+try_again:
   switch (TP->getTypeClass()) {
     case Type::Pointer:
       T = cast<PointerType>(TP)->getPointeeType();
@@ -444,6 +445,11 @@
     case Type::MemberPointer:
       T = cast<MemberPointerType>(TP)->getPointeeType();
       break;
+    case Type::Auto:
+      TP = cast<DeducedType>(TP)->getDeducedType().getTypePtrOrNull();
+      if (TP)
+        goto try_again;
+      break;
     default:
       T = QualType();
       break;


Index: tools/libclang/CXType.cpp
===================================================================
--- tools/libclang/CXType.cpp
+++ tools/libclang/CXType.cpp
@@ -427,6 +427,7 @@
   if (!TP)
     return MakeCXType(QualType(), GetTU(CT));
 
+try_again:
   switch (TP->getTypeClass()) {
     case Type::Pointer:
       T = cast<PointerType>(TP)->getPointeeType();
@@ -444,6 +445,11 @@
     case Type::MemberPointer:
       T = cast<MemberPointerType>(TP)->getPointeeType();
       break;
+    case Type::Auto:
+      TP = cast<DeducedType>(TP)->getDeducedType().getTypePtrOrNull();
+      if (TP)
+        goto try_again;
+      break;
     default:
       T = QualType();
       break;
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to