| // { dg-do run } | |
| // { dg-additional-sources " comdat2-aux.cc" } | |
| // { dg-options "-O" } | |
| // Test that statics in inline functions are unified between | |
| // translation units. Currently we handle this by just suppressing | |
| // inling and relying on unification of the function itself. | |
| template <class T> | |
| struct S { | |
| static int f () | |
| { | |
| static int i; | |
| return ++i; | |
| } | |
| S () {}; | |
| ~S () {}; | |
| }; | |
| typedef S<int> a; | |
| int g (); | |
| int main () | |
| { | |
| if (a::f() != 1 | |
| || g() != 2 | |
| || a::f() != 3) | |
| return 1; | |
| return 0; | |
| } |