1 // RUN: %clang_cc1 %s -std=c++11 -emit-llvm -o - | FileCheck %s
2 
3 // PR10531.
4 
5 int make_a();
6 
7 static union {
8   int a = make_a();
9   char *b;
10 };
11 
12 int f() { return a; }
13 
14 // CHECK-LABEL: define internal void @__cxx_global_var_init
15 // CHECK-NOT: }
16 // CHECK: call {{.*}}@"[[CONSTRUCT_GLOBAL:.*]]C1Ev"
17 
18 
19 int g() {
20   union {
21     int a;
22     int b = 81;
23   };
24   // CHECK: define {{.*}}_Z1gv
25   // CHECK-NOT: }
26   // CHECK: call {{.*}}@"[[CONSTRUCT_LOCAL:.*]]C1Ev"
27   return b;
28 }
29 
30 
31 // CHECK: define {{.*}}@"[[CONSTRUCT_LOCAL]]C2Ev"
32 // CHECK-NOT: }
33 // CHECK: store i32 81
34 
35 // CHECK: define {{.*}}@"[[CONSTRUCT_GLOBAL]]C2Ev"
36 // CHECK-NOT: }
37 // CHECK: call {{.*}}@_Z6make_a
38