================
@@ -772,6 +772,26 @@ void Sema::maybeAddCUDAHostDeviceAttrs(FunctionDecl *NewD,
   NewD->addAttr(CUDADeviceAttr::CreateImplicit(Context));
 }
 
+// If a trivial ctor/dtor has no host/device
+// attributes, make it implicitly host device function.
+void Sema::maybeAddCUDAHostDeviceAttrsToTrivialCtorDtor(FunctionDecl *FD) {
+  auto IsTrivialCtor = [&](auto *D) {
+    if (auto *CD = dyn_cast<CXXConstructorDecl>(D))
+      return isEmptyCudaConstructor(SourceLocation(), CD);
+    return false;
+  };
+  auto IsTrivialDtor = [&](auto *D) {
+    if (auto *DD = dyn_cast<CXXDestructorDecl>(D))
+      return isEmptyCudaDestructor(SourceLocation(), DD);
+    return false;
+  };
----------------
Artem-B wrote:

Nit: No need for lambdas here. You could just calculate the boolean values 
directly.

https://github.com/llvm/llvm-project/pull/72394
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to