1 ; Tests that we correctly check parameter types for intrinsics. 2 3 ; REQUIRES: no_minimal_build 4 5 ; RUN: not %pnacl_sz -bitcode-as-text \ 6 ; RUN: %p/Inputs/bad-intrinsic-arg.tbc \ 7 ; RUN: -bitcode-format=pnacl -notranslate -build-on-read \ 8 ; RUN: -allow-externally-defined-symbols 2>&1 \ 9 ; RUN: | FileCheck %s 10 11 ; CHECK: Invalid type signature for intrinsic llvm.nacl.setjmp: i32 (double) 12 13 ; RUN: pnacl-bcfuzz -bitcode-as-text \ 14 ; RUN: %p/Inputs/bad-intrinsic-arg.tbc -output - \ 15 ; RUN: | not pnacl-bcdis -no-records | FileCheck -check-prefix=ASM %s 16 17 ; ASM: module { // BlockID = 8 18 ; ASM: declare external i32 @f0(double); 19 ; ASM: valuesymtab { // BlockID = 14 20 ; ASM: @f0 : "llvm.nacl.setjmp"; 21 ; ASM: Error(118:0): Intrinsic llvm.nacl.setjmp expects i8* for argument 1. Found: double 22 ; ASM: } 23 ; ASM: function void @f3(i32 %p0, double %p1) { // BlockID = 12 24 ; ASM: blocks 1; 25 ; ASM: %b0: 26 ; ASM: %v0 = call i32 @f0(double %p1); 27 ; ASM: ret void; 28 ; ASM: } 29 ; ASM: } 30