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