1 // { dg-do run }
2 
3 // Copyright (C) 2003 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 19 Apr 2003 <nathan@codesourcery.com>
5 
6 // PR 9881. address-constant-expression not static initialized
7 
8 struct bar {
9   double p;
10 }; // bar
11 
12 bar v;
13 static bool error = false;
14 
15 struct foo {
16   static double *a;
17   static double *b;
18   static double storage;
19 };
20 
21 struct baz {
bazbaz22   baz () {
23     if (foo::a != &v.p)
24       error = true;
25     if (foo::b != &foo::storage)
26       error = true;
27   }
28 };
29 
30 baz f; // Get constructor to run before any other non-static initializers
31 
32 double *foo::a = &(((bar *)(&v))->p);
33 double *foo::b = &(((bar *)(&foo::storage))->p);
34 double foo::storage = 0.0;
35 
main()36 int main() {
37   return error;
38 }
39