[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-commits
Subject:    [PATCH] D91088: [CUDA][HIP] Fix capturing reference to host variable
From:       Artem Belevich via Phabricator via cfe-commits <cfe-commits () lists ! llvm ! org>
Date:       2020-11-30 21:23:01
Message-ID: Rs2bX0JLQByeKvLbw3Ki-A () geopod-ismtpd-5-6
[Download RAW message or body]

tra added a comment.

LGTM in general.



================
Comment at: clang/lib/Sema/SemaExpr.cpp:1944
+  // host variable in a device or host device lambda.
+  auto IsCapturingReferenceToHostVarInCUDADeviceLambda = [&](VarDecl *VD) {
+    if (!getLangOpts().CUDA || !VD->hasInit())
----------------
Nit: I'd make it a free function.
The large-ish lambda handling a niche case makes the original simple function less \
readable. I think keeping capture check separate would be a bit cleaner.


================
Comment at: clang/lib/Sema/SemaExpr.cpp:1982
         !(getLangOpts().OpenMP && isOpenMPCapturedDecl(D)) &&
+        !IsCapturingReferenceToHostVarInCUDADeviceLambda(VD) &&
         VD->isUsableInConstantExpressions(Context))
----------------
This could use some Sema tests.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91088/new/

https://reviews.llvm.org/D91088

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic