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" } */ 6 7class A { 8public: 9 int m_fn1(); 10}; 11class B { 12public: 13 enum IOMode { reading }; 14}; 15class tn_file_buf_stream : B { 16public: 17 tn_file_buf_stream(IOMode); 18 ~tn_file_buf_stream(); 19}; 20class C { 21public: 22 int &operator[](int); 23}; 24class D { 25public: 26 bool m_fn2(); 27}; 28class F { 29public: 30 int m_fn3(D &); 31}; 32class G { 33public: 34 D bdt; 35}; 36class ObjectType { 37public: 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) 51class I {}; 52class 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); 59}; 60int b, c, d, g; 61int e[5]; 62short f; 63void 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 } 86} 87 88void 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(); 94} 95 96catch (int) { 97} 98