https://github.com/GS-GOAT updated https://github.com/llvm/llvm-project/pull/127211
>From 5f46f9c8e29dde7d6096f4e00094b4e615874ed4 Mon Sep 17 00:00:00 2001 From: GS-GOAT <86884129+gs-g...@users.noreply.github.com> Date: Fri, 14 Feb 2025 14:58:50 +0530 Subject: [PATCH] Fixing the logic issue in TransformTypos::TransformDesignatedInitExpr #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 #126113 --- clang/lib/Sema/TreeTransform.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index fc1e3f7d58f4d..479ff1da7e76c 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -13665,15 +13665,15 @@ TreeTransform<Derived>::TransformDesignatedInitExpr(DesignatedInitExpr *E) { } if (D.isArrayDesignator()) { - ExprResult Index = getDerived().TransformExpr(E->getArrayIndex(D)); - if (Index.isInvalid()) + ExprResult NewIndex = getDerived().TransformExpr(E->getArrayIndex(D)); + if (NewIndex.isInvalid()) return ExprError(); - Desig.AddDesignator( - Designator::CreateArrayDesignator(Index.get(), D.getLBracketLoc())); + Desig.AddDesignator(Designator::CreateArrayDesignator( + NewIndex.get(), D.getLBracketLoc())); - ExprChanged = ExprChanged || Init.get() != E->getArrayIndex(D); - ArrayExprs.push_back(Index.get()); + ExprChanged = ExprChanged || NewIndex.get() != E->getArrayIndex(D); + ArrayExprs.push_back(NewIndex.get()); continue; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits