diff --git a/test/Feature/calltest.ll b/test/Feature/calltest.ll index 192dca39fee..1be7ad59719 100644 --- a/test/Feature/calltest.ll +++ b/test/Feature/calltest.ll @@ -1,13 +1,28 @@ +%FunTy = type int(int) + +declare int "test"(...) ; Test differences of prototype +declare int "test"() ; Differ only by vararg + implementation -; Bytecode gets a constant pool block, that constains: -; type plane: int(int) +void "invoke"(%FunTy *%x) +begin + %foo = call %FunTy* %x(int 123) + ret void +end int "main"(int %argc) ; TODO: , sbyte **argv, sbyte **envp) begin %retval = call int (int) *%test(int %argc) %two = add int %retval, %retval - ret int %two + %retval2 = invoke int %test(int %argc) + to label %Next except label %Error +Next: + %two2 = add int %two, %retval2 + call void %invoke (%FunTy* %test) + ret int %two2 +Error: + ret int -1 end int "test"(int %i0)