llvm-project/clang/test/SemaCUDA
Yaxun Liu c5be267003 [CUDA][HIP][Sema] Fix template kernel with function as template parameter
If a kernel template has a function as its template parameter, a device function should be
allowed as template argument since a kernel can call a device function. However,
currently if the kernel template is instantiated in a host function, clang will emit an error
message saying the device function is an invalid candidate for the template parameter.

This happens because clang checks the reference to the device function during parsing
the template arguments. At this point, the template is not instantiated yet. Clang incorrectly
assumes the device function is called by the host function and emits the error message.

This patch fixes the issue by disabling checking of device function during parsing template
arguments and deferring the check to the instantion of the template. At that point, the
template decl is already available, therefore the check can be done against the instantiated
function template decl.

Differential Revision: https://reviews.llvm.org/D56411

llvm-svn: 355421
2019-03-05 18:19:35 +00:00
..
Inputs [CUDA] add support for the new kernel launch API in CUDA-9.2+. 2019-01-31 21:34:03 +00:00
add-inline-in-definition.cu
addr-of-overloaded-fn.cu
alias.cu
amdgpu-attrs.cu [AMDGPU] Allow using integral non-type template parameters 2019-02-26 18:49:36 +00:00
amdgpu-size_t.cu [HIP] Fix size_t for MSVC environment 2019-01-30 12:26:54 +00:00
amdgpu-windows-vectorcall.cu [CUDA][HIP] Check calling convention based on function target 2019-02-26 22:24:49 +00:00
asm-constraints-device.cu
asm-constraints-mixed.cu
asm_delayed_diags.cu [OPENMP][CUDA]Do not emit warnings for variables in late-reported asm 2019-02-26 21:51:16 +00:00
attr-declspec.cu
attributes-on-non-cuda.cu
bad-attributes.cu
bad-calls-on-same-line.cu
builtins.cu Revert the tests that should've been reverted in rL341115 2018-08-30 20:53:15 +00:00
call-device-fn-from-host.cu [CUDA][HIP][Sema] Fix template kernel with function as template parameter 2019-03-05 18:19:35 +00:00
call-host-fn-from-device.cu [CUDA][HIP][Sema] Fix template kernel with function as template parameter 2019-03-05 18:19:35 +00:00
call-stack-for-deferred-err.cu [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00
config-type.cu [CUDA] add support for the new kernel launch API in CUDA-9.2+. 2019-01-31 21:34:03 +00:00
cuda-builtin-vars.cu
cuda-inherits-calling-conv.cu
cxx11-kernel-call.cu
device-var-init.cu [CUDA][HIP] Allow function-scope static const variable 2018-07-28 03:05:25 +00:00
error-includes-mode.cu
exceptions.cu
extern-shared.cu [HIP] Support early finalization of device code for -fno-gpu-rdc 2018-10-02 17:48:54 +00:00
float16.cu [CUDA][HIP] Do not diagnose use of _Float16 2019-01-29 13:20:23 +00:00
function-overload.cu Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
function-target.cu
function-template-overload.cu Fix typos in clang 2018-04-06 15:14:32 +00:00
global-initializers-host.cu
gnu-inline.cu
host-device-constexpr.cu
implicit-copy.cu
implicit-device-lambda.cu
implicit-intrinsic.cu
implicit-member-target-collision-cxx11.cu
implicit-member-target-collision.cu
implicit-member-target-inherited.cu [CUDA][HIP] Fix ShouldDeleteSpecialMember for inherited constructors 2018-10-09 15:53:14 +00:00
implicit-member-target.cu [cxx2a] P0641R2: (Some) type mismatches on defaulted functions only 2018-09-28 01:16:43 +00:00
inherited-ctor.cu [CUDA][HIP] Fix ShouldDeleteSpecialMember for inherited constructors 2018-10-09 15:53:14 +00:00
kernel-call.cu Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
launch_bounds.cu Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
lit.local.cfg
method-target.cu
no-call-stack-for-immediate-errs.cu [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00
no-destructor-overload.cu
no-host-device-constexpr.cu
overloaded-delete.cu
pr27778.cu
qualifiers.cu
reference-to-kernel-fn.cu
trace-through-global.cu
usual-deallocators.cu [CUDA] Ignore uncallable functions when we check for usual deallocators. 2018-09-21 17:29:33 +00:00
vararg.cu
vla.cu [OPENMP] Delayed diagnostics for VLA support. 2019-02-22 20:36:10 +00:00