1// { dg-do run  }
2// g++ 1.36.1 bug 900220_01
3
4// Ref: 12.8
5
6// Section 12.8 says:
7
8//	"That is, X::operator=() will be generated only if no assignment
9//	operation is explicitly declared and an object of class X is actually
10//	assigned an object of class X (or an object of a class derived from X)
11//	or if the address of X::operator= is taken.
12
13// g++ does not allow you to take the address of an implicitly generated
14// operator=
15
16// keywords: operator=, implicit copy operator, operator&
17
18struct struct0 {
19  int data_member;
20};
21
22typedef struct0& (struct0::*member_func_t) (const struct0&);
23
24member_func_t member_func;
25
26void global_function_0 (member_func_t member_f)
27{						// { dg-bogus "" } ref from below
28}
29
30void global_function_1 ()
31{
32  member_func = &struct0::operator=;		// { dg-bogus "" }
33
34  global_function_0 (&struct0::operator=);	// { dg-bogus "" }
35}
36
37int main () { return 0; }
38