diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-05-29 20:38:28 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-05-29 20:38:28 +0000 |
commit | 7de5966d76fea50cdf1ded7ccd2677594a12ef36 (patch) | |
tree | a823b08ce247d4b9447e707117392e469ee0936f /clang/lib/AST/TemplateName.cpp | |
parent | 006459ecd4ab07c8a1daa2d005533649261f8c4a (diff) | |
download | bcm5719-llvm-7de5966d76fea50cdf1ded7ccd2677594a12ef36.tar.gz bcm5719-llvm-7de5966d76fea50cdf1ded7ccd2677594a12ef36.zip |
Create a new PrintingPolicy class, which we pass down through the AST
printing logic to help customize the output. For now, we use this
rather than a special flag to suppress the "struct" when printing
"struct X" and to print the Boolean type as "bool" in C++ but "_Bool"
in C.
llvm-svn: 72590
Diffstat (limited to 'clang/lib/AST/TemplateName.cpp')
-rw-r--r-- | clang/lib/AST/TemplateName.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/lib/AST/TemplateName.cpp b/clang/lib/AST/TemplateName.cpp index c437e7b929a..3613da77b34 100644 --- a/clang/lib/AST/TemplateName.cpp +++ b/clang/lib/AST/TemplateName.cpp @@ -14,6 +14,7 @@ #include "clang/AST/TemplateName.h" #include "clang/AST/DeclTemplate.h" #include "clang/AST/NestedNameSpecifier.h" +#include "clang/AST/PrettyPrinter.h" #include "llvm/Support/raw_ostream.h" using namespace clang; @@ -38,23 +39,27 @@ bool TemplateName::isDependent() const { return true; } -void TemplateName::print(llvm::raw_ostream &OS, bool SuppressNNS) const { +void +TemplateName::print(llvm::raw_ostream &OS, const PrintingPolicy &Policy, + bool SuppressNNS) const { if (TemplateDecl *Template = Storage.dyn_cast<TemplateDecl *>()) OS << Template->getIdentifier()->getName(); else if (QualifiedTemplateName *QTN = getAsQualifiedTemplateName()) { if (!SuppressNNS) - QTN->getQualifier()->print(OS); + QTN->getQualifier()->print(OS, Policy); if (QTN->hasTemplateKeyword()) OS << "template "; OS << QTN->getTemplateDecl()->getIdentifier()->getName(); } else if (DependentTemplateName *DTN = getAsDependentTemplateName()) { if (!SuppressNNS) - DTN->getQualifier()->print(OS); + DTN->getQualifier()->print(OS, Policy); OS << "template "; OS << DTN->getName()->getName(); } } void TemplateName::dump() const { - print(llvm::errs()); + PrintingPolicy Policy; + Policy.CPlusPlus = true; + print(llvm::errs(), Policy); } |