// PR optimization/6631 // { dg-do run } // { dg-options "-O" } extern "C" void abort (void); struct QSize { QSize(); QSize( int w, int h ); int wd, ht; friend inline const QSize operator+( const QSize &, const QSize & ); }; inline QSize::QSize() { wd = ht = -1; } inline QSize::QSize( int w, int h ) { wd = w; ht = h; } inline const QSize operator+( const QSize & s1, const QSize & s2 ) { return QSize(s1.wd+s2.wd, s1.ht+s2.ht); } QSize minimumSize() { return QSize (100, 200); } QSize totalMinimumSize() { QSize s = minimumSize(); return s + QSize( 0, 0 ); } int main() { QSize s = totalMinimumSize(); if (s.wd != 100 || s.ht != 200) abort (); }