diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2012-10-24 20:21:25 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2012-10-24 20:21:25 +0000 |
| commit | 6fd26424af4a012c851af4cc8da81bbc09ffd796 (patch) | |
| tree | 744ca035207f074a221df0ab66f1497c2272086b | |
| parent | 82dc26038512f6a2533a1eb3d4eec4d6a8d95769 (diff) | |
| download | bcm5719-llvm-6fd26424af4a012c851af4cc8da81bbc09ffd796.tar.gz bcm5719-llvm-6fd26424af4a012c851af4cc8da81bbc09ffd796.zip | |
Don't print scope qualifiers for references to a type defined locally in a function. Patch by Grzegorz Jablonski.
llvm-svn: 166617
| -rw-r--r-- | clang/lib/AST/TypePrinter.cpp | 1 | ||||
| -rw-r--r-- | clang/test/SemaCXX/ast-print.cpp | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/clang/lib/AST/TypePrinter.cpp b/clang/lib/AST/TypePrinter.cpp index 4cf4b1847f4..90b2ca9cce1 100644 --- a/clang/lib/AST/TypePrinter.cpp +++ b/clang/lib/AST/TypePrinter.cpp @@ -799,6 +799,7 @@ void TypePrinter::printAtomicAfter(const AtomicType *T, raw_ostream &OS) { } /// Appends the given scope to the end of a string. void TypePrinter::AppendScope(DeclContext *DC, raw_ostream &OS) { if (DC->isTranslationUnit()) return; + if (DC->isFunctionOrMethod()) return; AppendScope(DC->getParent(), OS); if (NamespaceDecl *NS = dyn_cast<NamespaceDecl>(DC)) { diff --git a/clang/test/SemaCXX/ast-print.cpp b/clang/test/SemaCXX/ast-print.cpp index 0dad623d47d..aeb4039d597 100644 --- a/clang/test/SemaCXX/ast-print.cpp +++ b/clang/test/SemaCXX/ast-print.cpp @@ -64,3 +64,20 @@ template <class S> void test7() // CHECK: t.~T(); template <typename T> void test8(T t) { t.~T(); } + + +// CHECK: enum E { +// CHECK-NEXT: A, +// CHECK-NEXT: B, +// CHECK-NEXT: C +// CHECK-NEXT: }; +// CHECK-NEXT: {{^[ ]+}}E a = A; + +struct test9 +{ + void f() + { + enum E { A, B, C }; + E a = A; + } +}; |

