New case from Klaus-Georg Adams.
authorRobert Lipe <robertl@gcc.gnu.org>
Thu, 18 Jun 1998 08:31:29 +0000 (08:31 +0000)
committerRobert Lipe <robertl@gcc.gnu.org>
Thu, 18 Jun 1998 08:31:29 +0000 (08:31 +0000)
From-SVN: r20557

gcc/testsuite/g++.old-deja/g++.robertl/eb131.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
new file mode 100644 (file)
index 0000000..2209700
--- /dev/null
@@ -0,0 +1,30 @@
+// Build don't link
+// The call to a::foo() generates an error:
+// eb131.C: In method `a::a()':
+// eb131.C:26: no matching function for call to `a::foo (void (a::*)(double))'
+// eb131.C:15: candidates are: a::foo(void (a::*)(float))
+// According to [over.over] in the CD2, &junk should resolve in this context.
+// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 
+// Reported against EGCS snaps 98/06/18.
+
+struct a {
+       a();
+       void junk();
+       void junk( int );
+       void junk( float );
+       void junk( double );
+
+       void foo( void (a::*member)(float) );
+       void bar( void (*function)(float) );
+};
+
+void baz();
+void baz( int );
+void baz( float );
+void baz( double );
+
+a::a()
+{
+       foo( &junk );
+       bar( &baz );
+}