31 lines
		
	
	
		
			528 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			528 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llvm-as -f %s -o %t.bc
 | |
| ; RUN: lli %t.bc > /dev/null
 | |
| 
 | |
| %A = global int 0
 | |
| 
 | |
| int %main() {
 | |
| 	%Ret = call int %test(bool true, int 0)	
 | |
| 	ret int %Ret
 | |
| }
 | |
| 
 | |
| int %test(bool %c, int %A) {
 | |
| 	br bool %c, label %Taken1, label %NotTaken
 | |
| 
 | |
| Cont:
 | |
| 	%V = phi int [0, %NotTaken], 
 | |
| 	              [ sub (int cast (int* %A to int), int 1234), %Taken1]
 | |
| 	ret int 0
 | |
| 
 | |
| NotTaken:
 | |
| 	br label %Cont	
 | |
| 
 | |
| Taken1:
 | |
| 	%B = seteq int %A, 0
 | |
| 	; Code got inserted here, breaking the condition code.
 | |
| 	br bool %B, label %Cont, label %ExitError
 | |
| 
 | |
| ExitError:
 | |
| 	ret int 12
 | |
| 
 | |
| }
 |