// { dg-do run } // Test of various ?: problems. class D { public: void a(); void b(); D(int i):x(i) {} private: int x; }; void D::a() {++x;} void D::b() {--x;} int aa=1, bb=0; int fa() {return 0;} int fb() {return 2;} int main(int argc, char* argv[]) { typedef int* pi; int* p = (argc == 1)? &aa: &bb; *p = 0; typedef int (*ifptr)(); ifptr fp = (argc == 1)? fa: fb; aa = fp(); D d(0); typedef void (D::*dmem)(); dmem mfp = (argc == 1)? &D::a: &D::b; (d.*mfp)(); return 0; }