================ @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -finclude-default-header -triple \ +// RUN: dxil-pc-shadermodel6.3-library %s \ +// RUN: -emit-llvm -O1 -verify + +bool test_too_few_arg(bool a) { + return __builtin_hlsl_and(a); + // expected-error@-1 {{too few arguments to function call, expected 2, have 1}} +} + +bool test_too_many_arg(bool a) { + return __builtin_hlsl_and(a, a, a); + // expected-error@-1 {{too many arguments to function call, expected 2, have 3}} +} + +bool2 test_mismatched_args(bool2 a, bool3 b) { + return __builtin_hlsl_and(a, b); + // expected-error@-1 {{all arguments to '__builtin_hlsl_and' must have the same type}} +} + +struct S { + bool a; +}; + +bool test_invalid_type_conversion(S s) { + return __builtin_hlsl_and(s, s); ---------------- Icohedron wrote:
Actually, there is something like that, but it seems `__builtin_hlsl_and` is triggering something else. The `D3DCOLORtoUBYTE` function doesn't have any SemaHLSL and [yet has a similar test which emits a more accurate error message](https://github.com/llvm/llvm-project/blob/main/clang/test/SemaHLSL/BuiltIns/D3DCOLORtoUBYTE4-errors.hlsl#L28). Perhaps this is just because `D3DCOLORtoUBYTE` is a header-only implementation? https://github.com/llvm/llvm-project/pull/127098 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits