r266925 - [Tooling] Fix getting fully qualified names of template alias types.
Author: chaoren Date: Wed Apr 20 17:12:07 2016 New Revision: 266925 URL: http://llvm.org/viewvc/llvm-project?rev=266925&view=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&r1=266924&r2=266925&view=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&r1=266924&r2=266925&view=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] D19253: [Tooling] Fix getting fully qualified names of template alias types.
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&id=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
[PATCH] D17784: Check if LLVM_PREFIX is defined before using it.
chaoren created this revision. chaoren added reviewers: kparzysz, bkramer. chaoren added a subscriber: cfe-commits. LLVM_PREFIX could be undefined if CMAKE_INSTALL_PREFIX were set to empty. http://reviews.llvm.org/D17784 Files: lib/Driver/ToolChains.cpp Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -2607,9 +2607,11 @@ if (getVFS().exists(InstallRelDir = InstalledDir + "/../target")) return InstallRelDir; +#ifdef LLVM_PREFIX std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target"; if (getVFS().exists(PrefixRelDir)) return PrefixRelDir; +#endif return InstallRelDir; } Index: lib/Driver/ToolChains.cpp === --- lib/Driver/ToolChains.cpp +++ lib/Driver/ToolChains.cpp @@ -2607,9 +2607,11 @@ if (getVFS().exists(InstallRelDir = InstalledDir + "/../target")) return InstallRelDir; +#ifdef LLVM_PREFIX std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/target"; if (getVFS().exists(PrefixRelDir)) return PrefixRelDir; +#endif 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.
Author: chaoren Date: Thu Mar 17 19:05:37 2016 New Revision: 263766 URL: http://llvm.org/viewvc/llvm-project?rev=263766&view=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&r1=263765&r2=263766&view=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
Re: [PATCH] D17784: Check if LLVM_PREFIX is defined before using it.
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
Re: [PATCH] D17784: Check if LLVM_PREFIX is defined before using it.
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&id=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