1// { dg-do run  }
2// { dg-additional-sources " comdat2-aux.cc" }
3// { dg-options "-O" }
4// Test that statics in inline functions are unified between
5// translation units.  Currently we handle this by just suppressing
6// inling and relying on unification of the function itself.
7
8template <class T>
9struct S {
10  static int f ()
11  {
12    static int i;
13    return ++i;
14  }
15  S () {};
16  ~S () {};
17};
18
19typedef S<int> a;
20
21int g ();
22
23int main ()
24{
25  if (a::f() != 1
26      || g() != 2
27      || a::f() != 3)
28    return 1;
29  return 0;
30}
31