diff options
author | Kaelyn Uhrain <rikka@google.com> | 2012-04-26 23:36:17 +0000 |
---|---|---|
committer | Kaelyn Uhrain <rikka@google.com> | 2012-04-26 23:36:17 +0000 |
commit | aec2ac67e7190bdb88abb1d427b82ae3284ea756 (patch) | |
tree | d835e2740d0381136393c75b45ebb3c8fab28ce1 /test/Parser/cxx-using-declaration.cpp | |
parent | 65a7c685b78c18dc158399d2cc688a611d5e2553 (diff) |
Add note to help explain why a tag such as 'struct' is needed to refer
to a given type, when the reason is that there is a non-type decl with
the same name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155677 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/cxx-using-declaration.cpp')
-rw-r--r-- | test/Parser/cxx-using-declaration.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Parser/cxx-using-declaration.cpp b/test/Parser/cxx-using-declaration.cpp index 2b2a69d1a4..8c60b9b7a2 100644 --- a/test/Parser/cxx-using-declaration.cpp +++ b/test/Parser/cxx-using-declaration.cpp @@ -43,3 +43,19 @@ using F::X; // Should have some errors here. Waiting for implementation. void X(int); struct X *x; + + +namespace ShadowedTagNotes { + +namespace foo { + class Bar {}; +} + +void Bar(int); // expected-note{{non-type 'Bar' shadowing class 'Bar' declared here}} +using foo::Bar; + +void ambiguity() { + const Bar *x; // expected-error{{must use 'class' tag to refer to type 'Bar' in this scope}} +} + +} // namespace ShadowedTagNotes |