blob: 70231747e85e32dbc7a0f094587031bab0894e62 [file] [edit]
// RUN: not llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s -DTEST0 2>&1 | FileCheck %s --check-prefix=CHECK-TEST0
// RUN: not llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s -DTEST1 2>&1 | FileCheck %s --check-prefix=CHECK-TEST1
// RUN: not llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s -DTEST2 2>&1 | FileCheck %s --check-prefix=CHECK-TEST2
// RUN: not llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s -DTEST3 2>&1 | FileCheck %s --check-prefix=CHECK-TEST3
// RUN: not llvm-tblgen -gen-intrinsic-impl -I %p/../../include %s -DTEST4 2>&1 | FileCheck %s --check-prefix=CHECK-TEST4
// This unit test tests whether invalid use of `llvm_vararg_ty` are flagged.
#define TEST_INTRINSICS_SUPPRESS_DEFS
include "llvm/IR/Intrinsics.td"
#ifdef TEST0
// CHECK-TEST0: error: cannot use llvm_vararg_ty as a return type
def int_test: Intrinsic<[llvm_vararg_ty], []>;
#endif // TEST0
#ifdef TEST1
// CHECK-TEST1: error: cannot use llvm_vararg_ty as a return type
def int_test: Intrinsic<[llvm_i32_ty, llvm_vararg_ty], []>;
#endif // TEST1
#ifdef TEST2
// CHECK-TEST2: error: llvm_vararg_ty can only be the last parameter type
def int_test: Intrinsic<[], [llvm_i32_ty, llvm_vararg_ty, llvm_i1_ty]>;
#endif // TEST2
#ifdef TEST3
// CHECK-TEST3: error: llvm_vararg_ty can only be the last parameter type
def int_test: Intrinsic<[], [llvm_i32_ty, llvm_vararg_ty, llvm_vararg_ty]>;
#endif // TEST3
#ifdef TEST4
// CHECK-TEST4: error: llvm_vararg_ty can only be the last parameter type
def int_test: Intrinsic<[], [llvm_vararg_ty, llvm_i32_ty, llvm_vararg_ty]>;
#endif // TEST4