[clang] [clang][SYCL] Diagnose reference kernel parameters (PR #192957)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 25 06:16:40 PDT 2026


================
@@ -665,6 +666,109 @@ OutlinedFunctionDecl *BuildSYCLKernelEntryPointOutline(Sema &SemaRef,
   return OFD;
 }
 
+class KernelParamsChecker : public ConstSubobjectVisitor<KernelParamsChecker> {
+  SemaSYCL &SemaSYCLRef;
+  bool IsValid = true;
+  using ObjectAccess =
+      llvm::PointerUnion<const ParmVarDecl *, const CXXBaseSpecifier *,
+                         const FieldDecl *>;
+  SmallVector<ObjectAccess, 4> ObjectAccessPath;
+
+  void emitObjectAccessPathNotes() {
+    for (auto Parent : llvm::reverse(ObjectAccessPath)) {
+      if (auto *FD = Parent.dyn_cast<const FieldDecl *>()) {
----------------
AaronBallman wrote:

```suggestion
      if (const auto *FD = Parent.dyn_cast<FieldDecl>()) {
```
?

https://github.com/llvm/llvm-project/pull/192957


More information about the cfe-commits mailing list