llvm-project/clang/test/SemaCUDA/amdgpu-builtins-pointer-args.cu
Raymond Tian 8477ca6e8e
[HIP][Clang][Sema] Fix crash when calling builtins with pointer arguments (#95957)
Crashed when the number of args passed was less than number of
parameters in builtin definition, because we were indexing the list of
args while iterating through the entire number of parameters.
2024-07-01 14:54:04 -04:00

29 lines
2.4 KiB
Plaintext

// REQUIRES: amdgpu-registered-target
// REQUIRES: x86-registered-target
// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-linux-gnu -fcuda-is-device -fsyntax-only -verify %s
void call_amdgpu_builtins() {
__builtin_amdgcn_fence(); // expected-error {{too few arguments to function call, expected at least 2, have 0}}
__builtin_amdgcn_atomic_inc32(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_atomic_inc32(0); // expected-error {{too few arguments to function call, expected 4, have 1}}
__builtin_amdgcn_atomic_inc32(0, 0); // expected-error {{too few arguments to function call, expected 4, have 2}}
__builtin_amdgcn_atomic_inc32(0, 0, 0); // expected-error {{too few arguments to function call, expected 4, have 3}}
__builtin_amdgcn_atomic_inc64(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_atomic_dec32(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_atomic_dec64(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_div_scale(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_div_scale(0); // expected-error {{too few arguments to function call, expected 4, have 1}}
__builtin_amdgcn_div_scale(0, 0); // expected-error {{too few arguments to function call, expected 4, have 2}}
__builtin_amdgcn_div_scale(0, 0, 0); // expected-error {{too few arguments to function call, expected 4, have 3}}
__builtin_amdgcn_div_scalef(); // expected-error {{too few arguments to function call, expected 4, have 0}}
__builtin_amdgcn_ds_faddf(); // expected-error {{too few arguments to function call, expected 5, have 0}}
__builtin_amdgcn_ds_fminf(); // expected-error {{too few arguments to function call, expected 5, have 0}}
__builtin_amdgcn_ds_fmaxf(); // expected-error {{too few arguments to function call, expected 5, have 0}}
__builtin_amdgcn_ds_append(); // expected-error {{too few arguments to function call, expected 1, have 0}}
__builtin_amdgcn_ds_consume(); // expected-error {{too few arguments to function call, expected 1, have 0}}
__builtin_amdgcn_is_shared(); // expected-error {{too few arguments to function call, expected 1, have 0}}
__builtin_amdgcn_is_private(); // expected-error {{too few arguments to function call, expected 1, have 0}}
}