re PR c++/11097 (using template operator is broken)
authorGiovanni Bajo <giovannibajo@libero.it>
Tue, 7 Oct 2003 23:54:11 +0000 (01:54 +0200)
committerBernardo Innocenti <bernie@gcc.gnu.org>
Tue, 7 Oct 2003 23:54:11 +0000 (01:54 +0200)
PR c++/11097
* g++.dg/other/error5.C: Modify the error message.
* g++.dg/lookup/using8.C: New test.

From-SVN: r72211

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lookup/using8.C [new file with mode: 0644]
gcc/testsuite/g++.dg/other/error5.C

index 4cf077551584b49d71ab99bd439f8ef0acae6f2f..b1b28ccd587263bbc742c22d1704cb338cc04bb4 100644 (file)
@@ -1,3 +1,9 @@
+2003-10-08  Giovanni Bajo <giovannibajo@libero.it>
+
+       PR c++/11097
+       * g++.dg/other/error5.C: Modify the error message.
+       * g++.dg/lookup/using8.C: New test.
+
 2003-10-07  Geoffrey Keating  <geoffk@apple.com>
 
        * gcc.dg/darwin-abi-2.c: New file.
diff --git a/gcc/testsuite/g++.dg/lookup/using8.C b/gcc/testsuite/g++.dg/lookup/using8.C
new file mode 100644 (file)
index 0000000..26eb4d3
--- /dev/null
@@ -0,0 +1,19 @@
+// { dg-do compile }
+// Origin: Bill Clarke <llib at computer dot org>
+// PR c++/11097: using declartion for a converter operator to a nested class
+//  in a base type
+
+template <typename T>
+struct A
+{
+  struct Nested {};
+  operator Nested*();
+};
+
+template <typename T>
+struct B : A<T>
+{
+  using A<T>::operator typename A<T>::Nested*;
+};
+
+template struct B<int>;
index 9cde29fc3d384fbb20e679f4e0754b6537604900..552f7bf27b5a081772d01020d7e8b9dc15f4184a 100644 (file)
@@ -7,7 +7,7 @@ template <typename T> struct S {
 };
 
 template <typename T> struct S2 : S<T> {
-    using S<T>::operator typename S<T>::I*; // { dg-error "operator S\\<T\\>" "" }
+    using S<T>::operator typename S<T>::I*; // { dg-error "operator S\\<int\\>" "" }
 };
 
 template struct S2<int>;  // { dg-error "instantiated" "" }