blob: ffbb894ad76ef9efc5dea95c2ab282de6b8789ec [file] [log] [blame]
; Tests that we correctly check parameter types for intrinsics.
; REQUIRES: no_minimal_build
; RUN: not %pnacl_sz -bitcode-as-text \
; RUN: %p/Inputs/bad-intrinsic-arg.tbc \
; RUN: -bitcode-format=pnacl -notranslate -build-on-read \
; RUN: -allow-externally-defined-symbols 2>&1 \
; RUN: | FileCheck %s
; CHECK: Invalid type signature for intrinsic llvm.nacl.setjmp: i32 (double)
; RUN: pnacl-bcfuzz -bitcode-as-text \
; RUN: %p/Inputs/bad-intrinsic-arg.tbc -output - \
; RUN: | not pnacl-bcdis -no-records | FileCheck -check-prefix=ASM %s
; ASM: module { // BlockID = 8
; ASM: declare external i32 @f0(double);
; ASM: valuesymtab { // BlockID = 14
; ASM: @f0 : "llvm.nacl.setjmp";
; ASM: Error(118:0): Intrinsic llvm.nacl.setjmp expects i8* for argument 1. Found: double
; ASM: }
; ASM: function void @f3(i32 %p0, double %p1) { // BlockID = 12
; ASM: blocks 1;
; ASM: %b0:
; ASM: %v0 = call i32 @f0(double %p1);
; ASM: ret void;
; ASM: }
; ASM: }