1/* { dg-do compile } */ 2typedef enum 3{ 4 NS_OK 5} nsresult; 6struct A 7{ 8 static int kIID; 9}; 10class B 11{ 12}; 13class C 14{ 15public: 16 C (B p1) { m_fn1 (p1, A::kIID); } 17 void m_fn1 (B, int); 18}; 19class D; 20class F 21{ 22public: 23 F (int); 24}; 25class G 26{ 27public: 28 D *operator[](int); 29}; 30class H 31{ 32 virtual nsresult m_fn2 (); 33 34public: 35 void m_fn3 (); 36}; 37class J : H 38{ 39 G mQueries; 40 int mLiveUpdate; 41 nsresult m_fn2 (); 42}; 43class D 44{ 45public: 46 nsresult m_fn4 (int); 47 void m_fn5 (int); 48}; 49class I 50{ 51public: 52 static I * 53 m_fn6 () 54 { 55 B __trans_tmp_3; 56 if (!gHistoryService) 57 C serv = __trans_tmp_3; 58 } 59 void m_fn7 (); 60 static I *gHistoryService; 61}; 62D *Refresh___trans_tmp_2; 63D Refresh___trans_tmp_6, Refresh___trans_tmp_5; 64int Refresh_hasDomain; 65nsresult 66J::m_fn2 () 67{ 68 m_fn3 (); 69 I history = *I::m_fn6 (); 70 switch (mLiveUpdate) 71 { 72 case 1: 73 { 74 mQueries[0]; 75 F query = 0; 76 if (Refresh_hasDomain) 77 return NS_OK; 78 } 79 case 0: 80 { 81 Refresh___trans_tmp_2 = mQueries[0]; 82 F query = Refresh___trans_tmp_5.m_fn4 (0); 83 history.m_fn7 (); 84 Refresh___trans_tmp_6.m_fn5 (0); 85 } 86 case 3: 87 m_fn2 (); 88 } 89} 90