1 // { dg-do assemble  }
2 // { dg-options "-O2" }
3 // Origin: Jakub Jelinek <jakub@redhat.com>
4 
5 class baz
6 {
7 public:
8   baz& operator += (const baz&);
9 };
10 
11 inline baz& baz::operator += (const baz& r)
12 {
13   return *this;
14 }
15 
16 inline baz operator + (int x, const baz& y)
17 {
18   return y;
19 }
20 
21 static inline baz bar (int alpha);
foo(int alpha)22 static inline baz foo (int alpha)
23 {
24   baz tmp = alpha + foo (alpha);
25   tmp += alpha + bar (alpha);
26   return tmp;
27 }
28 
bar(int alpha)29 static inline baz bar (int alpha)
30 {
31   baz tmp = alpha + bar (alpha);
32   tmp += alpha + foo (alpha);
33   return tmp;
34 }
35