diff options
Diffstat (limited to 'clang/lib/AST/DeclarationName.cpp')
| -rw-r--r-- | clang/lib/AST/DeclarationName.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/clang/lib/AST/DeclarationName.cpp b/clang/lib/AST/DeclarationName.cpp index 344a2389228..2a988e1d22d 100644 --- a/clang/lib/AST/DeclarationName.cpp +++ b/clang/lib/AST/DeclarationName.cpp @@ -135,7 +135,10 @@ int DeclarationName::compare(DeclarationName LHS, DeclarationName RHS) { static void printCXXConstructorDestructorName(QualType ClassType, raw_ostream &OS, - const PrintingPolicy &Policy) { + PrintingPolicy Policy) { + // We know we're printing C++ here. Ensure we print types properly. + Policy.adjustForCPlusPlus(); + if (const RecordType *ClassRec = ClassType->getAs<RecordType>()) { OS << *ClassRec->getDecl(); return; @@ -146,14 +149,7 @@ static void printCXXConstructorDestructorName(QualType ClassType, return; } } - if (!Policy.LangOpts.CPlusPlus) { - // Passed policy is the default one from operator <<, use a C++ policy. - LangOptions LO; - LO.CPlusPlus = true; - ClassType.print(OS, PrintingPolicy(LO)); - } else { - ClassType.print(OS, Policy); - } + ClassType.print(OS, Policy); } void DeclarationName::print(raw_ostream &OS, const PrintingPolicy &Policy) { @@ -206,15 +202,10 @@ void DeclarationName::print(raw_ostream &OS, const PrintingPolicy &Policy) { OS << *Rec->getDecl(); return; } - if (!Policy.LangOpts.CPlusPlus) { - // Passed policy is the default one from operator <<, use a C++ policy. - LangOptions LO; - LO.CPlusPlus = true; - LO.Bool = true; - Type.print(OS, PrintingPolicy(LO)); - } else { - Type.print(OS, Policy); - } + // We know we're printing C++ here, ensure we print 'bool' properly. + PrintingPolicy CXXPolicy = Policy; + CXXPolicy.adjustForCPlusPlus(); + Type.print(OS, CXXPolicy); return; } case DeclarationName::CXXUsingDirective: |

