| // 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 |