hfinkel added a comment.

> When Sema sees this code during compilation, it can not tell whether there is 
> an error. Calling foo from the host code is perfectly valid. Calling it from 
> device code is not. CUDADiagIfDeviceCode creates 'postponed' diagnostics 
> which only gets emitted if we ever need to generate code for the function on 
> device.

Interesting. I suspect that we'll end up dealing with this problem for OpenMP 
as well (in the future - for OpenMP v5). In this next version (for which the 
draft is available here: 
http://www.openmp.org/wp-content/uploads/openmp-TR6.pdf), we'll have "implicit 
declare target" functions (whereby we generate target code based on the 
locally-defined subset of the transitive closure of the call graph starting 
from target regions).


https://reviews.llvm.org/D40275



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to