1 // { dg-do run } 2 // Test of various ?: problems. 3 4 class D 5 { 6 public: 7 void a(); 8 void b(); D(int i)9 D(int i):x(i) {} 10 private: 11 int x; 12 }; 13 a()14void D::a() {++x;} b()15void D::b() {--x;} 16 17 18 int aa=1, bb=0; 19 fa()20int fa() {return 0;} fb()21int fb() {return 2;} 22 main(int argc,char * argv[])23int main(int argc, char* argv[]) 24 { 25 typedef int* pi; 26 int* p = (argc == 1)? &aa: &bb; 27 *p = 0; 28 29 typedef int (*ifptr)(); 30 ifptr fp = (argc == 1)? fa: fb; 31 aa = fp(); 32 33 D d(0); 34 typedef void (D::*dmem)(); 35 dmem mfp = (argc == 1)? &D::a: &D::b; 36 (d.*mfp)(); 37 return 0; 38 } 39