[clang] [Clang] Preserve CXXParenListInitExpr in TreeTransform. (PR #138518)

Younan Zhang via cfe-commits cfe-commits at lists.llvm.org
Mon May 5 07:14:56 PDT 2025


================
@@ -16487,12 +16501,22 @@ ExprResult
 TreeTransform<Derived>::TransformCXXParenListInitExpr(CXXParenListInitExpr *E) {
   SmallVector<Expr *, 4> TransformedInits;
   ArrayRef<Expr *> InitExprs = E->getInitExprs();
-  if (TransformExprs(InitExprs.data(), InitExprs.size(), true,
-                     TransformedInits))
+
+  QualType T = getDerived().TransformType(E->getType());
+
+  bool ArgChanged = false;
+  ;
+
+  if (getDerived().TransformExprs(InitExprs.data(), InitExprs.size(), true,
+                                  TransformedInits, &ArgChanged))
     return ExprError();
 
-  return getDerived().RebuildParenListExpr(E->getBeginLoc(), TransformedInits,
-                                           E->getEndLoc());
+  if (!ArgChanged && T == E->getType())
+    return E;
----------------
zyn0217 wrote:

Do we want to handle AlwaysRebuild?

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


More information about the cfe-commits mailing list