diff options
Diffstat (limited to 'llvm/test/Transforms/GlobalOpt/cxx-dtor.ll')
-rw-r--r-- | llvm/test/Transforms/GlobalOpt/cxx-dtor.ll | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll b/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll deleted file mode 100644 index c43a8e2be2e..00000000000 --- a/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll +++ /dev/null @@ -1,33 +0,0 @@ -; RUN: opt < %s -S -passes='cgscc(inline),function(early-cse),globalopt' | FileCheck %s - -%0 = type { i32, void ()* } -%struct.A = type { i8 } -%struct.B = type { } - -@a = global %struct.A zeroinitializer, align 1 -@__dso_handle = external global i8* -@llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I_a }] - -; CHECK-NOT: call i32 @__cxa_atexit - -define internal void @__cxx_global_var_init() nounwind section "__TEXT,__StaticInit,regular,pure_instructions" { - %1 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%struct.A*)* @_ZN1AD1Ev to void (i8*)*), i8* getelementptr inbounds (%struct.A, %struct.A* @a, i32 0, i32 0), i8* bitcast (i8** @__dso_handle to i8*)) - ret void -} - -define linkonce_odr void @_ZN1AD1Ev(%struct.A* %this) nounwind align 2 { - %t = bitcast %struct.A* %this to %struct.B* - call void @_ZN1BD1Ev(%struct.B* %t) - ret void -} - -declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) - -define linkonce_odr void @_ZN1BD1Ev(%struct.B* %this) nounwind align 2 { - ret void -} - -define internal void @_GLOBAL__I_a() nounwind section "__TEXT,__StaticInit,regular,pure_instructions" { - call void @__cxx_global_var_init() - ret void -} |