When removing a function from the function set and adding it to deferred, we
[llvm.git] / test / Transforms / GlobalOpt / 2008-01-03-Crash.ll
blob4105ab1ed5b9df9ead8c1d72ff47692ee1a30998
1 ; RUN: opt < %s -globalopt | llvm-dis
2 ; PR1896
4 @indirect1 = internal global void (i32)* null           ; <void (i32)**> [#uses=2]
6 declare void @indirectmarked(i32)
8 define i32 @main() {
9 entry:
10         br i1 false, label %cond_next20.i, label %cond_true.i9
12 cond_true.i9:           ; preds = %entry
13         ret i32 0
15 cond_next20.i:          ; preds = %entry
16         store void (i32)* @indirectmarked, void (i32)** @indirect1, align 4
17         br i1 false, label %cond_next21.i.i23.i, label %stack_restore
19 stack_restore:          ; preds = %cond_next20.i
20         ret i32 0
22 cond_next21.i.i23.i:            ; preds = %cond_next20.i
23         %tmp6.i4.i = load i32* bitcast (void (i32)** @indirect1 to i32*), align 4               ; <i32> [#uses=0]
24         ret i32 0