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()16 inline QSize::QSize()
17 { wd = ht = -1; }
18 
QSize(int w,int h)19 inline 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()25 QSize minimumSize()
26 {
27   return QSize (100, 200);
28 }
29 
totalMinimumSize()30 QSize totalMinimumSize()
31 {
32     QSize s = minimumSize();
33     return s + QSize( 0, 0 );
34 }
35 
main()36 int main()
37 {
38   QSize s = totalMinimumSize();
39   if (s.wd != 100 || s.ht != 200)
40     abort ();
41 }
42 
43