; RUN: opt -passes=globalopt -S -o - < %s | FileCheck %s @glbl = internal global ptr null define void @test1a() { ; CHECK-LABEL: @test1a( ; CHECK-NOT: store ; CHECK-NEXT: ret void store ptr null, ptr @glbl ret void } define void @test1b(ptr %p) { ; CHECK-LABEL: @test1b( ; CHECK-NEXT: store ; CHECK-NEXT: ret void store ptr %p, ptr @glbl ret void } define void @test2() { ; CHECK-LABEL: @test2( ; CHECK: alloca i8 %txt = alloca i8 call void @foo2(ptr %txt) %call2 = call ptr @strdup(ptr %txt) store ptr %call2, ptr @glbl ret void } declare ptr @strdup(ptr) declare void @foo2(ptr) define void @test3() uwtable personality ptr @__gxx_personality_v0 { ; CHECK-LABEL: @test3( ; CHECK-NOT: bb1: ; CHECK-NOT: bb2: ; CHECK: invoke %ptr = invoke ptr @_Znwm(i64 1) to label %bb1 unwind label %bb2 bb1: store ptr %ptr, ptr @glbl unreachable bb2: %tmp1 = landingpad { ptr, i32 } cleanup resume { ptr, i32 } %tmp1 } declare i32 @__gxx_personality_v0(i32, i64, ptr, ptr) declare ptr @_Znwm(i64)