aboutsummaryrefslogtreecommitdiff
path: root/test/Parser/cxx-using-declaration.cpp
diff options
context:
space:
mode:
authorKaelyn Uhrain <rikka@google.com>2012-04-26 23:36:17 +0000
committerKaelyn Uhrain <rikka@google.com>2012-04-26 23:36:17 +0000
commitaec2ac67e7190bdb88abb1d427b82ae3284ea756 (patch)
treed835e2740d0381136393c75b45ebb3c8fab28ce1 /test/Parser/cxx-using-declaration.cpp
parent65a7c685b78c18dc158399d2cc688a611d5e2553 (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.cpp16
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