; This testcase shoudl return with an exit code of 1.
;
; RUN: llvm-as < %s | not lli

@test = global i64 0		; <i64*> [#uses=1]

define internal i64 @test.upgrd.1() {
	%tmp.0 = load i64* @test		; <i64> [#uses=1]
	%tmp.1 = add i64 %tmp.0, 1		; <i64> [#uses=1]
	ret i64 %tmp.1
}

define i32 @main() {
	%L = call i64 @test.upgrd.1( )		; <i64> [#uses=1]
	%I = trunc i64 %L to i32		; <i32> [#uses=1]
	ret i32 %I
}


