[clang] Fixing the logic issue in TransformTypos::TransformDesignatedInitExpr… (PR #127211)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 14 21:39:26 PST 2025
https://github.com/GS-GOAT updated https://github.com/llvm/llvm-project/pull/127211
>From fe6e13312278f807685210dff746229949d84270 Mon Sep 17 00:00:00 2001
From: GS-GOAT <86884129+GS-GOAT at users.noreply.github.com>
Date: Sat, 15 Feb 2025 11:08:47 +0530
Subject: [PATCH] Fixing the logic issue in
TransformTypos::TransformDesignatedInitExpr llvm#126113
-Transforming Indices: For array designators, transform the index expression
and update ExprChanged if it's modified.
-Correct Initializer Check: Compare the transformed initializer against the
original to accurately track changes.
-Single Initializer Transformation: The initializer is processed once, not
per designator, as each DesignatedInitExpr has one initializer.
Fixes llvm#126113
---
clang/lib/Sema/TreeTransform.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index fc1e3f7d58f4d..c2bbe51676e39 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -13670,9 +13670,9 @@ TreeTransform<Derived>::TransformDesignatedInitExpr(DesignatedInitExpr *E) {
return ExprError();
Desig.AddDesignator(
- Designator::CreateArrayDesignator(Index.get(), D.getLBracketLoc()));
+ Designator::CreateArrayDesignator(Index.get(), D.getLBracketLoc()));
- ExprChanged = ExprChanged || Init.get() != E->getArrayIndex(D);
+ ExprChanged = ExprChanged || Index.get() != E->getArrayIndex(D);
ArrayExprs.push_back(Index.get());
continue;
}
More information about the cfe-commits
mailing list