diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2e96a627549e766f554ae5591fdc9eab4c443475..576845a0dd7d0a357374adda605ea5b7a56dd2d7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2003-08-27 Mark Mitchell <mark@codesourcery.com> + + * g++.dg/opt/ptrmem3.C: New test. + + * g++.old-deja/g++.pt/overload8.C: Remove XFAIL. + 2003-08-27 Jakub Jelinek <jakub@redhat.com> * gcc.dg/20030826-2.c: New test. diff --git a/gcc/testsuite/g++.dg/opt/ptrmem3.C b/gcc/testsuite/g++.dg/opt/ptrmem3.C new file mode 100644 index 0000000000000000000000000000000000000000..552a92c9c1a7406617785cfc0be7959f537b6cfc --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/ptrmem3.C @@ -0,0 +1,23 @@ +// { dg-options "-O1" } + +#include <stdio.h> +struct A { + A(int arg) : ia(arg) {} + int x,y,z,ia; + int mf(int arg) { return arg + ia; } +}; +int func(int A::*pdm, int (A::*pmf)(int)) // 2. regular function +{ + A oa(2); + return ((&oa)->*pdm) + (oa.*pmf)(2); +} +int main() +{ + int val; + + int A::*pda = &A::ia; + int (A::*pmfa)(int) = &A::mf; + val = func( pda, pmfa ); + if(val != 6) + printf("val=%d, expect 6 \n", val); +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload8.C b/gcc/testsuite/g++.old-deja/g++.pt/overload8.C index 4f0a1d0ad087dd1d3b44649fcb6eb547e9c1e9d8..5c2d8bc026ecdec00e9dfe84a2f8b7b828ae278e 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload8.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/overload8.C @@ -7,6 +7,6 @@ struct baz; void operator*(baz&, double); template <class T> inline T operator*(double s, const T &p) - ; // { dg-bogus "" "" { xfail *-*-* } } - must have argument of class type - + ; // { dg-bogus "" "" } - must have argument of class type - void m(baz& a) { a * .5; }