[clang] [clang][CUDA] Perform lvalue-to-rvalue conversion on `__cluster_dims__` attribute (PR #227998)
Timm Baeder via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 5 23:11:23 PDT 2026
https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/227998
>From e62dc6663b5937a472beca8ed81b019b2c0e42f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbaeder at redhat.com>
Date: Tue, 6 Oct 2026 08:11:02 +0200
Subject: [PATCH] rvalue
---
clang/lib/Sema/SemaDeclAttr.cpp | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index eb4a8c2ab9ae0..3fce8589739cd 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -6261,9 +6261,19 @@ static void handleClusterDimsAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
!AL.checkAtMostNumArgs(S, /*Num=*/3))
return;
- S.addClusterDimsAttr(D, AL, AL.getArgAsExpr(0),
- AL.getNumArgs() > 1 ? AL.getArgAsExpr(1) : nullptr,
- AL.getNumArgs() > 2 ? AL.getArgAsExpr(2) : nullptr);
+ // Convert all arguments to rvalues.
+ ExprResult Converted1 = S.DefaultLvalueConversion(AL.getArgAsExpr(0));
+ assert(!Converted1.isInvalid());
+ ExprResult Converted2 = AL.getNumArgs() > 1
+ ? S.DefaultLvalueConversion(AL.getArgAsExpr(1))
+ : ExprResult();
+ ExprResult Converted3 = AL.getNumArgs() > 2
+ ? S.DefaultLvalueConversion(AL.getArgAsExpr(2))
+ : ExprResult();
+
+ S.addClusterDimsAttr(D, AL, Converted1.get(),
+ Converted2.isInvalid() ? nullptr : Converted2.get(),
+ Converted3.isInvalid() ? nullptr : Converted3.get());
}
static void handleNoClusterAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
More information about the cfe-commits
mailing list