1// { dg-do run  }
2// Test of various ?: problems.
3
4class D
5{
6public:
7  void a();
8  void b();
9  D(int i):x(i) {}
10private:
11  int x;
12};
13
14void D::a() {++x;}
15void D::b() {--x;}
16
17
18int aa=1, bb=0;
19
20int fa() {return 0;}
21int fb() {return 2;}
22
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