================
@@ -6033,6 +6033,26 @@ static QualType getIntTypeForBitwidthOrBitInt(ASTContext 
&C, unsigned Bits,
   return Ty;
 }
 
+static Expr *buildInitListValue(Sema &SemaRef, Expr *E) {
+  auto *ILE = dyn_cast<InitListExpr>(E);
+  if (!ILE)
+    return E;
+  if (ILE->isTransparent())
+    return buildInitListValue(SemaRef, ILE->getInit(0));
+  ASTContext &Context = SemaRef.Context;
+  QualType Ty = ILE->getType();
+  bool IsEmptyScalar = ILE->getNumInits() == 0 && Ty->isScalarType();
+  if (!SemaRef.getLangOpts().CPlusPlus)
+    return IsEmptyScalar ? new (Context) ImplicitValueInitExpr(Ty) : E;
+  if (!IsEmptyScalar && !Ty->isRecordType())
+    return E;
+  return CXXFunctionalCastExpr::Create(
+      Context, Ty, VK_PRValue,
+      Context.getTrivialTypeSourceInfo(Ty, ILE->getLBraceLoc()), CK_NoOp, ILE,
+      /*Path=*/nullptr, SemaRef.CurFPFeatureOverrides(), SourceLocation(),
+      SourceLocation());
----------------
akash-manna-sky wrote:

I replaced it by `BuildCXXTypeConstructExpr` form Sema, on a copy of the 
syntactic list. A plain implicit conversion of a list returns a list. 


https://github.com/llvm/llvm-project/pull/233248
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to