aboutsummaryrefslogtreecommitdiff
path: root/test/Other/2002-03-11-ConstPropCrash.ll
blob: 62435747c23b719e8786bf0da380d33bc79098ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; When constant propogating terminator instructions, the basic block iterator
; was not updated to refer to the final position of the new terminator.  This
; can be bad, f.e. because constproping a terminator can lead to the 
; destruction of PHI nodes, which invalidates the iterator!
;
; Fixed by adding new arguments to ConstantFoldTerminator
;
; RUN: llvm-as < %s | opt -constprop

implementation

void "build_tree"(int %ml)
begin
	br label %bb2

bb2:
	%reg137 = phi int [ %reg140, %bb2 ], [ 12, %0 ]		; <int> [#uses=2]
	%reg138 = phi uint [ %reg139, %bb2 ], [ 0, %0 ]		; <uint> [#uses=3]
	%reg139 = add uint %reg138, 1		; <uint> [#uses=1]
	%reg140 = add int %reg137, -1		; <int> [#uses=1]
	br bool false, label %bb2, label %bb3

bb3:
	ret void
end