diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.ext/default.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.ext/default.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.ext/default.C b/gcc/testsuite/g++.old-deja/g++.ext/default.C new file mode 100644 index 000000000..9f4395e77 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.ext/default.C @@ -0,0 +1,27 @@ +// { dg-do assemble } +// PRMS Id: 5353 +// This may be an extension, but it's a very common one... + +extern "C" int printf (const char *, ...); + +class A { +public: + static A*func (int = 3); + static A*(*ptr)(int = 4); // { dg-error "" } .* +}; + +A*(*A::ptr)(int) = &A::func; + +int main() +{ + A foo; + + A::ptr(); // { dg-error "" } .* + A::ptr(47); +} + +A*A::func(int i) +{ + printf("I = %d\n",i); + return (A*)0; +} |