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