| // RUN: %clang_cc1 %s -std=c++11 -emit-llvm -o - | FileCheck %s |
| |
| // PR10531. |
| |
| int make_a(); |
| |
| static union { |
| int a = make_a(); |
| char *b; |
| }; |
| |
| int f() { return a; } |
| |
| // CHECK-LABEL: define internal void @__cxx_global_var_init |
| // CHECK-NOT: } |
| // CHECK: call {{.*}}@"[[CONSTRUCT_GLOBAL:.*]]C1Ev" |
| |
| |
| int g() { |
| union { |
| int a; |
| int b = 81; |
| }; |
| // CHECK: define {{.*}}_Z1gv |
| // CHECK-NOT: } |
| // CHECK: call {{.*}}@"[[CONSTRUCT_LOCAL:.*]]C1Ev" |
| return b; |
| } |
| |
| |
| // CHECK: define {{.*}}@"[[CONSTRUCT_LOCAL]]C2Ev" |
| // CHECK-NOT: } |
| // CHECK: store i32 81 |
| |
| // CHECK: define {{.*}}@"[[CONSTRUCT_GLOBAL]]C2Ev" |
| // CHECK-NOT: } |
| // CHECK: call {{.*}}@_Z6make_a |