diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-09-23 13:43:16 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-09-23 13:43:16 +0000 |
commit | 36d514e6877be1983527f3e37a416a034330a695 (patch) | |
tree | 4d7ff412643ab12e138e329c379069256f4b461e | |
parent | a3e553a22cfbab757fc519d9f13ec6ade4149e15 (diff) | |
download | bcm5719-llvm-36d514e6877be1983527f3e37a416a034330a695.tar.gz bcm5719-llvm-36d514e6877be1983527f3e37a416a034330a695.zip |
[DeclPrinter] Don't crash when printing a using decl with a special name
Fixes PR24872.
llvm-svn: 248376
-rw-r--r-- | clang/lib/AST/DeclPrinter.cpp | 2 | ||||
-rw-r--r-- | clang/test/SemaCXX/ast-print.cpp | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp index 3202d8c7543..2c3cee29932 100644 --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -1299,7 +1299,7 @@ void DeclPrinter::VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D) { if (!D->isAccessDeclaration()) Out << "using "; D->getQualifier()->print(Out, Policy); - Out << D->getName(); + Out << D->getDeclName(); } void DeclPrinter::VisitUsingShadowDecl(UsingShadowDecl *D) { diff --git a/clang/test/SemaCXX/ast-print.cpp b/clang/test/SemaCXX/ast-print.cpp index 1b57406a64f..059804c81a9 100644 --- a/clang/test/SemaCXX/ast-print.cpp +++ b/clang/test/SemaCXX/ast-print.cpp @@ -219,3 +219,11 @@ struct CXXFunctionalCastExprPrint {} fce = CXXFunctionalCastExprPrint{}; // CHECK: struct CXXTemporaryObjectExprPrint toe = CXXTemporaryObjectExprPrint{}; struct CXXTemporaryObjectExprPrint { CXXTemporaryObjectExprPrint(); } toe = CXXTemporaryObjectExprPrint{}; + +namespace PR24872 { +// CHECK: template <typename T> struct Foo : T { +// CHECK: using T::operator-; +template <typename T> struct Foo : T { + using T::operator-; +}; +} |