tra accepted this revision. tra added a comment. This revision is now accepted and ready to land.
Few nits, but looks good otherwise. Should be add few tests for calling device functions from host-side global initializers? Perhaps for device->host, too, as there may be unexpected interplay with constructor emptiness checks. ================ Comment at: clang/include/clang/Sema/Sema.h:9162 @@ -9161,1 +9161,3 @@ + /// Check whether we're allowed to call Callee from the current context. + /// ---------------- \p Callee ================ Comment at: clang/lib/Sema/SemaCUDA.cpp:493 @@ +492,3 @@ + if (Pref == Sema::CFP_Never) { + Diag(Loc, diag::err_ref_bad_target) << IdentifyCUDATarget(Callee) << Callee + << IdentifyCUDATarget(Caller); ---------------- Perhaps we should add assert(Callee) before we use it. ================ Comment at: clang/lib/Sema/SemaDeclCXX.cpp:11510-11511 @@ -11509,1 +11509,4 @@ MarkFunctionReferenced(ConstructLoc, Constructor); + if (getLangOpts().CUDA) + if (!CheckCUDACall(ConstructLoc, Constructor)) + return ExprError(); ---------------- Single `if` would do here. ================ Comment at: clang/lib/Sema/SemaExpr.cpp:5119 @@ -5126,8 +5118,3 @@ -/// ActOnCallExpr - Handle a call to Fn with the specified array of arguments. -/// This provides the location of the left/right parens and a list of comma -/// locations. -ExprResult -Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc, - MultiExprArg ArgExprs, SourceLocation RParenLoc, - Expr *ExecConfig, bool IsExecConfig) { +ExprResult ActOnCallExprImpl(Sema &S, Scope *Scope, Expr *Fn, + SourceLocation LParenLoc, MultiExprArg ArgExprs, ---------------- static? https://reviews.llvm.org/D23242 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits