1 /* PR rtl-optimization/34035 */ 2 /* Origin: Janis Johnson <janis@gcc.gnu.org> */ 3 4 /* { dg-do compile } */ 5 /* { dg-options "-O2 -fnon-call-exceptions -ffast-math -fno-gcse" } */ 6 7 class One { 8 public: One()9 One () { e[0] = e[1] = 0.0; } 10 double e[2]; 11 }; 12 13 template <class T> 14 class Two { 15 public: 16 Two(); 17 private: 18 T *data; 19 int arraySize; 20 }; 21 22 template <class T> Two()23Two<T>::Two() { 24 data = new T[arraySize]; 25 } 26 27 class Three { 28 protected: 29 Two<One> data; 30 }; 31 32 class Four : public Three { 33 public: 34 Four (); 35 void Foo (int n); 36 }; 37 Four()38Four :: Four (){ 39 Foo (1); 40 } 41