From 025b3f1485cba9e3b61289c141ad223508b64fd3 Mon Sep 17 00:00:00 2001 From: Robert Lipe Date: Thu, 18 Jun 1998 08:31:29 +0000 Subject: [PATCH] New case from Klaus-Georg Adams. From-SVN: r20557 --- .../g++.old-deja/g++.robertl/eb131.C | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.robertl/eb131.C 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 index 00000000000..2209700d59d --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C @@ -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 +// 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 ); +}