| // { dg-do run } |
| // g++ 1.36.1 bug 900220_01 |
| |
| // Ref: 12.8 |
| |
| // Section 12.8 says: |
| |
| // "That is, X::operator=() will be generated only if no assignment |
| // operation is explicitly declared and an object of class X is actually |
| // assigned an object of class X (or an object of a class derived from X) |
| // or if the address of X::operator= is taken. |
| |
| // g++ does not allow you to take the address of an implicitly generated |
| // operator= |
| |
| // keywords: operator=, implicit copy operator, operator& |
| |
| struct struct0 { |
| int data_member; |
| }; |
| |
| typedef struct0& (struct0::*member_func_t) (const struct0&); |
| |
| member_func_t member_func; |
| |
| void global_function_0 (member_func_t member_f) |
| { // { dg-bogus "" } ref from below |
| } |
| |
| void global_function_1 () |
| { |
| member_func = &struct0::operator=; // { dg-bogus "" } |
| |
| global_function_0 (&struct0::operator=); // { dg-bogus "" } |
| } |
| |
| int main () { return 0; } |