re PR c++/2922 ([DR 197] two-stage lookup for unqualified function calls with type...
authorDouglas Gregor <doug.gregor@gmail.com>
Thu, 21 Jul 2005 15:14:59 +0000 (15:14 +0000)
committerDoug Gregor <dgregor@gcc.gnu.org>
Thu, 21 Jul 2005 15:14:59 +0000 (15:14 +0000)
2005-07-21  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/2922
* g++.dg/lookup/two-stage5.C: New test from bug comments.

From-SVN: r102236

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lookup/two-stage5.C [new file with mode: 0644]

index e7fb312a08b74137cbd937c9e44c74574261f5dd..c390032ef66ca2ee2a75df41cb46877ca49eee8e 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-21  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/2922
+       * g++.dg/lookup/two-stage5.C: New test from bug comments.
+       
 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
        PR c++/15938
diff --git a/gcc/testsuite/g++.dg/lookup/two-stage5.C b/gcc/testsuite/g++.dg/lookup/two-stage5.C
new file mode 100644 (file)
index 0000000..bfc405b
--- /dev/null
@@ -0,0 +1,19 @@
+// { dg-do run }
+extern "C" void abort ();
+
+namespace N {
+template <class T> T foo (T) { return T (); }
+template <class T> T bar (T t) { return foo (t); }
+}
+
+struct S { S (int i = 0): i_ (i) { } int i_; };
+
+namespace N {
+/* template <> */ S foo (S) { return S (1); }
+}
+
+int main ()
+{
+  if (1 == N::bar (S()).i_)
+     abort ();
+}