// { dg-do run } // { dg-options "-O2" } #include #include using namespace std; class A { protected: int a; complex *b; public: A(int n); inline complex& operator[] (int x); }; A::A(int n) { a = n; b = new complex[a]; for (int i=0; i(0.0,0.0); } inline complex& A::operator[](int x) { if (x < 0 || x >= a) cout << "x error" << endl; return b[x]; } void foo () { int n = 5; A *o = new A(n); A *p = new A(n); for (int i = 0; i < n; i++) { cout << i << endl; (*o)[i] *= complex((*p)[i].real(), (*p)[i].imag()); } } int main() { foo(); }