; RUN: llvm-as -f %s -o %t.bc
; RUN: lli %t.bc > /dev/null


declare void %exit(int)

int %test(sbyte %C, short %S) {
  %X = cast short %S to int
  ret int %X
}

void %FP(void(int) * %F) {
	%X = call int %test(sbyte 123, short 1024)
	call void %F(int %X)
	ret void
}

int %main() {
	call void %FP(void(int)* %exit)
	ret int 1
}

; RUN: llvm-as -f %s -o %t.bc
; RUN: lli %t.bc > /dev/null


declare void %exit(int)

int %test(sbyte %C, short %S) {
  %X = cast short %S to ubyte
  %Y = cast ubyte %X to int
  ret int %Y
}

void %FP(void(int) * %F) {
	%X = call int %test(sbyte 123, short 1024)
	call void %F(int %X)
	ret void
}

int %main() {
	call void %FP(void(int)* %exit)
	ret int 1
}

Exit only with a value from 0-255.
Exit only with a value from 0-255.


git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@18119 91177308-0d34-0410-b5e6-96231b3b80d8
