Committed as r331552. On Fri, May 4, 2018 at 12:43 PM, Mikhail Ramalho via Phabricator < revi...@reviews.llvm.org> wrote:
> mikhail.ramalho updated this revision to Diff 145255. > mikhail.ramalho added a comment. > > Fixed the test case. > > > https://reviews.llvm.org/D36610 > > Files: > include/clang/AST/QualTypeNames.h > lib/AST/QualTypeNames.cpp > unittests/Tooling/QualTypeNamesTest.cpp > > > Index: unittests/Tooling/QualTypeNamesTest.cpp > =================================================================== > --- unittests/Tooling/QualTypeNamesTest.cpp > +++ unittests/Tooling/QualTypeNamesTest.cpp > @@ -26,9 +26,13 @@ > std::string ExpectedName = > ExpectedQualTypeNames.lookup(VD->getNameAsString()); > if (ExpectedName != "") { > - std::string ActualName = > - TypeName::getFullyQualifiedName(VD->getType(), *Context, > - WithGlobalNsPrefix); > + PrintingPolicy Policy(Context->getPrintingPolicy()); > + Policy.SuppressScope = false; > + Policy.AnonymousTagLocations = true; > + Policy.PolishForDeclaration = true; > + Policy.SuppressUnwrittenScope = true; > + std::string ActualName = TypeName::getFullyQualifiedName( > + VD->getType(), *Context, Policy, WithGlobalNsPrefix); > if (ExpectedName != ActualName) { > // A custom message makes it much easier to see what declaration > // failed compared to EXPECT_EQ. > @@ -217,6 +221,26 @@ > " }\n" > "}\n" > ); > + > + TypeNameVisitor AnonStrucs; > + AnonStrucs.ExpectedQualTypeNames["a"] = "short"; > + AnonStrucs.ExpectedQualTypeNames["un_in_st_1"] = > + "union (anonymous struct at input.cc:1:1)::(anonymous union at " > + "input.cc:2:27)"; > + AnonStrucs.ExpectedQualTypeNames["b"] = "short"; > + AnonStrucs.ExpectedQualTypeNames["un_in_st_2"] = > + "union (anonymous struct at input.cc:1:1)::(anonymous union at " > + "input.cc:5:27)"; > + AnonStrucs.ExpectedQualTypeNames["anon_st"] = > + "struct (anonymous struct at input.cc:1:1)"; > + AnonStrucs.runOver(R"(struct { > + union { > + short a; > + } un_in_st_1; > + union { > + short b; > + } un_in_st_2; > + } anon_st;)"); > } > > } // end anonymous namespace > Index: lib/AST/QualTypeNames.cpp > =================================================================== > --- lib/AST/QualTypeNames.cpp > +++ lib/AST/QualTypeNames.cpp > @@ -452,12 +452,8 @@ > > std::string getFullyQualifiedName(QualType QT, > const ASTContext &Ctx, > + const PrintingPolicy &Policy, > bool WithGlobalNsPrefix) { > - PrintingPolicy Policy(Ctx.getPrintingPolicy()); > - Policy.SuppressScope = false; > - Policy.AnonymousTagLocations = false; > - Policy.PolishForDeclaration = true; > - Policy.SuppressUnwrittenScope = true; > QualType FQQT = getFullyQualifiedType(QT, Ctx, WithGlobalNsPrefix); > return FQQT.getAsString(Policy); > } > Index: include/clang/AST/QualTypeNames.h > =================================================================== > --- include/clang/AST/QualTypeNames.h > +++ include/clang/AST/QualTypeNames.h > @@ -72,6 +72,7 @@ > /// \param[in] WithGlobalNsPrefix - If true, then the global namespace > /// specifier "::" will be prepended to the fully qualified name. > std::string getFullyQualifiedName(QualType QT, const ASTContext &Ctx, > + const PrintingPolicy &Policy, > bool WithGlobalNsPrefix = false); > > /// \brief Generates a QualType that can be used to name the same type > > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits