1; RUN: opt < %s -passes=globalopt -S | FileCheck %s 2; CHECK: global 3 4@G = internal global ptr null ; <ptr> [#uses=2] 5 6define internal void @Actual() { 7; CHECK-LABEL: Actual( 8 ret void 9} 10 11define void @init() { 12; CHECK-LABEL: init( 13; CHECK: store ptr @Actual, ptr @G 14 store ptr @Actual, ptr @G 15 ret void 16} 17 18define void @doit() #0 { 19; CHECK-LABEL: doit( 20 %FP = load ptr, ptr @G ; <ptr> [#uses=2] 21; CHECK: %FP = load ptr, ptr @G 22 %CC = icmp eq ptr %FP, null ; <i1> [#uses=1] 23; CHECK: %CC = icmp eq ptr %FP, null 24 br i1 %CC, label %isNull, label %DoCall 25; CHECK: br i1 %CC, label %isNull, label %DoCall 26 27DoCall: ; preds = %0 28; CHECK: DoCall: 29; CHECK: call void %FP() 30; CHECK: ret void 31 call void %FP( ) 32 ret void 33 34isNull: ; preds = %0 35; CHECK: isNull: 36; CHECK: ret void 37 ret void 38} 39 40attributes #0 = { null_pointer_is_valid } 41