Re: [PATCH] D19253: [Tooling] Fix getting fully qualified names of template alias types.

2016-04-20 Thread Chaoren Lin via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL266925: [Tooling] Fix getting fully qualified names of 
template alias types. (authored by chaoren).

Changed prior to commit:
  http://reviews.llvm.org/D19253?vs=54225=54435#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19253

Files:
  cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
  cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp

Index: cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
===
--- cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
+++ cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
@@ -304,6 +304,8 @@
 Decl = TDT->getDecl();
   } else if (const auto *TagDeclType = dyn_cast(TypePtr)) {
 Decl = TagDeclType->getDecl();
+  } else if (const auto *TST = dyn_cast(TypePtr)) {
+Decl = TST->getTemplateName().getAsTemplateDecl();
   } else {
 Decl = TypePtr->getAsCXXRecordDecl();
   }
Index: cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
===
--- cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
+++ cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
@@ -87,13 +87,19 @@
   Visitor.ExpectedQualTypeNames["non_dependent_type_var"] =
   "Foo::non_dependent_type";
   Visitor.ExpectedQualTypeNames["AnEnumVar"] = "EnumScopeClass::AnEnum";
+  Visitor.ExpectedQualTypeNames["AliasTypeVal"] = "A::B::C::InnerAlias";
   Visitor.runOver(
   "int CheckInt;\n"
+  "template \n"
+  "class OuterTemplateClass { };\n"
   "namespace A {\n"
   " namespace B {\n"
   "   class Class0 { };\n"
   "   namespace C {\n"
   " typedef int MyInt;"
+  " template \n"
+  " using InnerAlias = OuterTemplateClass;\n"
+  " InnerAlias AliasTypeVal;\n"
   "   }\n"
   "   template class Template0;"
   "   template class Template1;"
@@ -148,7 +154,8 @@
   "public:\n"
   "  enum AnEnum { ZERO, ONE };\n"
   "};\n"
-  "EnumScopeClass::AnEnum AnEnumVar;\n"
+  "EnumScopeClass::AnEnum AnEnumVar;\n",
+  TypeNameVisitor::Lang_CXX11
 );
 
   TypeNameVisitor Complex;


Index: cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
===
--- cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
+++ cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
@@ -304,6 +304,8 @@
 Decl = TDT->getDecl();
   } else if (const auto *TagDeclType = dyn_cast(TypePtr)) {
 Decl = TagDeclType->getDecl();
+  } else if (const auto *TST = dyn_cast(TypePtr)) {
+Decl = TST->getTemplateName().getAsTemplateDecl();
   } else {
 Decl = TypePtr->getAsCXXRecordDecl();
   }
Index: cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
===
--- cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
+++ cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
@@ -87,13 +87,19 @@
   Visitor.ExpectedQualTypeNames["non_dependent_type_var"] =
   "Foo::non_dependent_type";
   Visitor.ExpectedQualTypeNames["AnEnumVar"] = "EnumScopeClass::AnEnum";
+  Visitor.ExpectedQualTypeNames["AliasTypeVal"] = "A::B::C::InnerAlias";
   Visitor.runOver(
   "int CheckInt;\n"
+  "template \n"
+  "class OuterTemplateClass { };\n"
   "namespace A {\n"
   " namespace B {\n"
   "   class Class0 { };\n"
   "   namespace C {\n"
   " typedef int MyInt;"
+  " template \n"
+  " using InnerAlias = OuterTemplateClass;\n"
+  " InnerAlias AliasTypeVal;\n"
   "   }\n"
   "   template class Template0;"
   "   template class Template1;"
@@ -148,7 +154,8 @@
   "public:\n"
   "  enum AnEnum { ZERO, ONE };\n"
   "};\n"
-  "EnumScopeClass::AnEnum AnEnumVar;\n"
+  "EnumScopeClass::AnEnum AnEnumVar;\n",
+  TypeNameVisitor::Lang_CXX11
 );
 
   TypeNameVisitor Complex;
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r266925 - [Tooling] Fix getting fully qualified names of template alias types.

2016-04-20 Thread Chaoren Lin via cfe-commits
Author: chaoren
Date: Wed Apr 20 17:12:07 2016
New Revision: 266925

URL: http://llvm.org/viewvc/llvm-project?rev=266925=rev
Log:
[Tooling] Fix getting fully qualified names of template alias types.

Reviewers: rsmith, rnk

Subscribers: cfe-commits, klimek

Differential Revision: http://reviews.llvm.org/D19253

Modified:
cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp

Modified: cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp?rev=266925=266924=266925=diff
==
--- cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp (original)
+++ cfe/trunk/lib/Tooling/Core/QualTypeNames.cpp Wed Apr 20 17:12:07 2016
@@ -304,6 +304,8 @@ static NestedNameSpecifier *createNested
 Decl = TDT->getDecl();
   } else if (const auto *TagDeclType = dyn_cast(TypePtr)) {
 Decl = TagDeclType->getDecl();
+  } else if (const auto *TST = dyn_cast(TypePtr)) {
+Decl = TST->getTemplateName().getAsTemplateDecl();
   } else {
 Decl = TypePtr->getAsCXXRecordDecl();
   }

Modified: cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp?rev=266925=266924=266925=diff
==
--- cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp (original)
+++ cfe/trunk/unittests/Tooling/QualTypeNamesTest.cpp Wed Apr 20 17:12:07 2016
@@ -87,13 +87,19 @@ TEST(QualTypeNameTest, getFullyQualified
   Visitor.ExpectedQualTypeNames["non_dependent_type_var"] =
   "Foo::non_dependent_type";
   Visitor.ExpectedQualTypeNames["AnEnumVar"] = "EnumScopeClass::AnEnum";
+  Visitor.ExpectedQualTypeNames["AliasTypeVal"] = "A::B::C::InnerAlias";
   Visitor.runOver(
   "int CheckInt;\n"
+  "template \n"
+  "class OuterTemplateClass { };\n"
   "namespace A {\n"
   " namespace B {\n"
   "   class Class0 { };\n"
   "   namespace C {\n"
   " typedef int MyInt;"
+  " template \n"
+  " using InnerAlias = OuterTemplateClass;\n"
+  " InnerAlias AliasTypeVal;\n"
   "   }\n"
   "   template class Template0;"
   "   template class Template1;"
@@ -148,7 +154,8 @@ TEST(QualTypeNameTest, getFullyQualified
   "public:\n"
   "  enum AnEnum { ZERO, ONE };\n"
   "};\n"
-  "EnumScopeClass::AnEnum AnEnumVar;\n"
+  "EnumScopeClass::AnEnum AnEnumVar;\n",
+  TypeNameVisitor::Lang_CXX11
 );
 
   TypeNameVisitor Complex;


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


Re: [PATCH] D17784: Check if LLVM_PREFIX is defined before using it.

2016-03-19 Thread Chaoren Lin via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL263766: Remove usage of LLVM_PREFIX. (authored by chaoren).

Changed prior to commit:
  http://reviews.llvm.org/D17784?vs=50993=50994#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D17784

Files:
  cfe/trunk/lib/Driver/ToolChains.cpp

Index: cfe/trunk/lib/Driver/ToolChains.cpp
===
--- cfe/trunk/lib/Driver/ToolChains.cpp
+++ cfe/trunk/lib/Driver/ToolChains.cpp
@@ -2581,10 +2581,6 @@
   if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
 return InstallRelDir;
 
-  std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target";
-  if (getVFS().exists(PrefixRelDir))
-return PrefixRelDir;
-
   return InstallRelDir;
 }
 


Index: cfe/trunk/lib/Driver/ToolChains.cpp
===
--- cfe/trunk/lib/Driver/ToolChains.cpp
+++ cfe/trunk/lib/Driver/ToolChains.cpp
@@ -2581,10 +2581,6 @@
   if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
 return InstallRelDir;
 
-  std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target";
-  if (getVFS().exists(PrefixRelDir))
-return PrefixRelDir;
-
   return InstallRelDir;
 }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D17784: Check if LLVM_PREFIX is defined before using it.

2016-03-18 Thread Chaoren Lin via cfe-commits
chaoren updated this revision to Diff 50993.
chaoren added a comment.

Remove usage of LLVM_PREFIX altogether.


http://reviews.llvm.org/D17784

Files:
  lib/Driver/ToolChains.cpp

Index: lib/Driver/ToolChains.cpp
===
--- lib/Driver/ToolChains.cpp
+++ lib/Driver/ToolChains.cpp
@@ -2607,10 +2607,6 @@
   if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
 return InstallRelDir;
 
-  std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target";
-  if (getVFS().exists(PrefixRelDir))
-return PrefixRelDir;
-
   return InstallRelDir;
 }
 


Index: lib/Driver/ToolChains.cpp
===
--- lib/Driver/ToolChains.cpp
+++ lib/Driver/ToolChains.cpp
@@ -2607,10 +2607,6 @@
   if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
 return InstallRelDir;
 
-  std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target";
-  if (getVFS().exists(PrefixRelDir))
-return PrefixRelDir;
-
   return InstallRelDir;
 }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r263766 - Remove usage of LLVM_PREFIX.

2016-03-18 Thread Chaoren Lin via cfe-commits
Author: chaoren
Date: Thu Mar 17 19:05:37 2016
New Revision: 263766

URL: http://llvm.org/viewvc/llvm-project?rev=263766=rev
Log:
Remove usage of LLVM_PREFIX.

Summary: LLVM_PREFIX could be undefined if CMAKE_INSTALL_PREFIX were set to 
empty.

Reviewers: kparzysz, bkramer, chandlerc

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D17784

Modified:
cfe/trunk/lib/Driver/ToolChains.cpp

Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=263766=263765=263766=diff
==
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Thu Mar 17 19:05:37 2016
@@ -2581,10 +2581,6 @@ std::string HexagonToolChain::getHexagon
   if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
 return InstallRelDir;
 
-  std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target";
-  if (getVFS().exists(PrefixRelDir))
-return PrefixRelDir;
-
   return InstallRelDir;
 }
 


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