]> granicus.if.org Git - clang/commitdiff
Actually try to trigger the last diagnostic in the declaration-collision test case.
authorJohn McCall <rjmccall@apple.com>
Thu, 10 Dec 2009 21:17:25 +0000 (21:17 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 10 Dec 2009 21:17:25 +0000 (21:17 +0000)
Surprisingly, we *do* diagnose one of them.  Since we don't really track scopes into
instantiation, this has to signal some kind of bug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91063 91177308-0d34-0410-b5e6-96231b3b80d8

test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp

index ce6221216ad6eb2e063cd9fa6714df2e8b33b76a..b4302d5b4b903c53dce0c0fb1aceed8a842d89b3 100644 (file)
@@ -69,9 +69,11 @@ namespace test4 {
   };
 }
 
-// FIXME: we should be able to diagnose these, but we can't.
+// FIXME: we should be able to diagnose both of these, but we can't.
+// ...I'm actually not sure why we can diagnose either of them; it's
+// probably a bug.
 namespace test5 {
-  namespace ns { void foo(int); }
+  namespace ns { void foo(int); } // expected-note {{target of using declaration}}
   template <typename T> class Test0 {
     void test() {
       int foo(T);
@@ -81,9 +83,12 @@ namespace test5 {
 
   template <typename T> class Test1 {
     void test() {
-      using ns::foo;
-      int foo(T);
+      using ns::foo; // expected-note {{using declaration}}
+      int foo(T); // expected-error {{declaration conflicts with target of using declaration already in scope}}
     }
   };
+
+  template class Test0<int>;
+  template class Test1<int>; // expected-note {{in instantiation of member function}}
 }