================ @@ -2752,7 +2787,17 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) { llvm::Value *Zero = llvm::Constant::getNullValue(CGF.SizeTy); return Builder.CreateExtractElement(Vec, Zero, "cast.vtrunc"); } + case CK_HLSLAggregateCast: { + RValue RV = CGF.EmitAnyExpr(E); + SourceLocation Loc = CE->getExprLoc(); + QualType SrcTy = E->getType(); + if (RV.isAggregate()) { // RHS is an aggregate + Address SrcVal = RV.getAggregateAddress(); + return EmitHLSLAggregateFlatCast(CGF, SrcVal, SrcTy, DestTy, Loc); + } + llvm_unreachable("Not a valid HLSL Flat Cast."); ---------------- llvm-beanz wrote:
I'd also make this an assert rather than an unreachable. https://github.com/llvm/llvm-project/pull/118842 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits