PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / pr65242.C
blobbe2ddaa85b237b702067771524b2e3acccff0844
1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-require-effective-target powerpc_p8vector_ok } */
4 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
5 /* { dg-options "-mcpu=power8 -O3" } */
7 class A {
8 public:
9   int m_fn1();
11 class B {
12 public:
13   enum IOMode { reading };
15 class tn_file_buf_stream : B {
16 public:
17   tn_file_buf_stream(IOMode);
18   ~tn_file_buf_stream();
20 class C {
21 public:
22   int &operator[](int);
24 class D {
25 public:
26   bool m_fn2();
28 class F {
29 public:
30   int m_fn3(D &);
32 class G {
33 public:
34   D bdt;
36 class ObjectType {
37 public:
38   int id;
39   D weather;
40   struct H {
41     F terrainaccess;
42   };
43   H m_fn4();
44   struct {
45     A images;
46   } weatherPicture[];
47   ObjectType *m_fn5();
48   int m_fn6();
49 } a;
50 #pragma pack(1)
51 class I {};
52 class J {
53   J(I *);
54   I translationTableTMISSPart;
55   void m_fn8();
56   tn_file_buf_stream *MissFile;
57   void m_fn9();
58   virtual G *m_fn7(int, int);
60 int b, c, d, g;
61 int e[5];
62 short f;
63 void J::m_fn9() {
64   int h;
65   C k;
66   for (; b;) {
67     int l = c, n = c & 1;
68     for (int m; d;) {
69       int o = 0;
70       for (int p = 0; p < 2 && !o; p++)
71         if (g)
72           for (int i; i < a.m_fn6(); i++) {
73             ObjectType *q = a.m_fn5();
74             for (int r = 0; r < 6; r++)
75               if (q->weather.m_fn2())
76                 for (int j; j < q->weatherPicture[r].images.m_fn1(); j++)
77                   if (e[m]) {
78                     G *s = m_fn7(l, n);
79                     if (q->m_fn4().terrainaccess.m_fn3(s->bdt))
80                       g = o = 1;
81                   }
82           }
83       k[h++] = f;
84     }
85   }
88 void J::m_fn8() try {
89   tn_file_buf_stream t(B::reading);
90   MissFile = &t;
91   m_fn9();
92   J u(0);
93   u.m_fn8();
96 catch (int) {