| // { dg-do assemble } |
| // GROUPS passed member-pointers error-reporting |
| struct Y |
| { |
| struct X |
| { |
| int A; |
| int Y::X::* foo () { undef1(1); return &Y::X::A; }// { dg-error "" } foo().* |
| int bar () { return A; } |
| }; |
| }; |
| |
| int Y::X::* foo () |
| { |
| undef2(1);// { dg-error "" } foo().* |
| return &Y::X::A; |
| } |
| |
| int Y::X::* (* foo2 ())() |
| { |
| undef3(1);// { dg-error "" } foo().* |
| return foo; |
| } |
| |
| int (Y::X::* bar2 ()) () |
| { |
| undef4(1);// { dg-error "" } foo\(\).* |
| return Y::X::bar;// { dg-error "" } foo\(\).* |
| } |
| |
| int Y::X::* (Y::X::* foo3 ())() |
| { |
| undef5(1);// { dg-error "" } foo().* |
| return Y::X::foo;// { dg-error "" } foo().* |
| } |