1 // PR optimization/6631 2 3 // { dg-do run } 4 // { dg-options "-O" } 5 6 extern "C" void abort (void); 7 8 struct QSize 9 { 10 QSize(); 11 QSize( int w, int h ); 12 int wd, ht; 13 friend inline const QSize operator+( const QSize &, const QSize & ); 14 }; 15 QSize()16inline QSize::QSize() 17 { wd = ht = -1; } 18 QSize(int w,int h)19inline QSize::QSize( int w, int h ) 20 { wd = w; ht = h; } 21 22 inline const QSize operator+( const QSize & s1, const QSize & s2 ) 23 { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } 24 minimumSize()25QSize minimumSize() 26 { 27 return QSize (100, 200); 28 } 29 totalMinimumSize()30QSize totalMinimumSize() 31 { 32 QSize s = minimumSize(); 33 return s + QSize( 0, 0 ); 34 } 35 main()36int main() 37 { 38 QSize s = totalMinimumSize(); 39 if (s.wd != 100 || s.ht != 200) 40 abort (); 41 } 42 43