Home | History | Annotate | Download | only in parse_errs
      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