static-init.cpp revision 071c81065a282edba989bcf7c260b5838a59db50
1// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
2
3// CHECK: @_ZZ1hvE1i = internal global i32 0, align 4
4struct A {
5  A();
6  ~A();
7};
8
9void f() {
10  // CHECK: call void @_ZN1AC1Ev(
11  // CHECK: call i32 @__cxa_atexit(void (i8*)* bitcast (void (%struct.A*)* @_ZN1AD1Ev to void (i8*)*), i8* getelementptr inbounds (%struct.A* @_ZZ1fvE1a, i32 0, i32 0), i8* bitcast (i8** @__dso_handle to i8*))
12  static A a;
13}
14
15void g() {
16  // CHECK: call noalias i8* @_Znwm(i64 1)
17  // CHECK: call void @_ZN1AC1Ev(
18  static A& a = *new A;
19}
20
21int a();
22void h() {
23  static const int i = a();
24}
25