================
Comment at: lib/Sema/SemaCUDA.cpp:63-69
@@ -62,4 +62,9 @@
 
 bool Sema::CheckCUDATarget(const FunctionDecl *Caller,
                            const FunctionDecl *Callee) {
+  // The CUDADisableTargetCallChecks short-circuits this check: we assume all
+  // cross-target calls are valid.
+  if (getLangOpts().CUDADisableTargetCallChecks)
+    return false;
+
   CUDAFunctionTarget CallerTarget = IdentifyCUDATarget(Caller),
----------------
Do we really need to disable the check completely?
Can it be limited to calls from host-device functions only?
What's expected to happen if we do let host->device or device->host call 
through?
Do we expect an error further down in the pipeline if/when we get to generate 
the code for the call?
Or will we generate valid code which would cause runtime error if the call were 
to happen?
In either case this seems to need a test case to make sure we do a sensible 
thing for the call that is not expected to work.

http://reviews.llvm.org/D9036

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to