[clang] Fixing the logic issue in TransformTypos::TransformDesignatedInitExpr… (PR #127211)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 14 06:29:44 PST 2025
================
@@ -13665,21 +13665,22 @@ TreeTransform<Derived>::TransformDesignatedInitExpr(DesignatedInitExpr *E) {
}
if (D.isArrayDesignator()) {
- ExprResult Index = getDerived().TransformExpr(E->getArrayIndex(D));
- if (Index.isInvalid())
+ // Transform the array index expression.
+ 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());
+ // Check if the transformed index is different from the original.
+ ExprChanged = ExprChanged || NewIndex.get() != E->getArrayIndex(D);
+ ArrayExprs.push_back(NewIndex.get());
continue;
}
assert(D.isArrayRangeDesignator() && "New kind of designator?");
- ExprResult Start
- = getDerived().TransformExpr(E->getArrayRangeStart(D));
+ ExprResult Start = getDerived().TransformExpr(E->getArrayRangeStart(D));
----------------
zyn0217 wrote:
Can you please leave out the unrelated changes?
https://github.com/llvm/llvm-project/pull/127211
More information about the cfe-commits
mailing list