@@ -763,6 +763,7 @@ public:
763763 vto.parent = ids.parent;
764764 vto.csym = null ;
765765 vto.nrvo = ids.propagateNRVO && varIsNRVO;
766+ vto.ctfeAdrOnStack = VarDeclaration.AdrOnStackNone;
766767
767768 ids.from.push(vd);
768769 ids.to.push(vto);
@@ -850,13 +851,8 @@ public:
850851 {
851852 auto ce = cast (CastExp)e.copy();
852853 if (auto lowering = ce.lowering)
853- {
854854 ce.lowering = doInlineAs! Expression(lowering, ids);
855- }
856- else
857- {
858- ce.e1 = doInlineAs! Expression(e.e1, ids);
859- }
855+ ce.e1 = doInlineAs! Expression(e.e1, ids);
860856
861857 result = ce;
862858 }
@@ -875,11 +871,8 @@ public:
875871
876872 if (auto lowering = ce.lowering)
877873 ce.lowering = doInlineAs! Expression(lowering, ids);
878- else
879- {
880- ce.e1 = doInlineAs! Expression(e.e1, ids);
881- ce.e2 = doInlineAs! Expression(e.e2, ids);
882- }
874+ ce.e1 = doInlineAs! Expression(e.e1, ids);
875+ ce.e2 = doInlineAs! Expression(e.e2, ids);
883876
884877 result = ce;
885878 }
@@ -889,12 +882,9 @@ public:
889882 auto cae = cast (CatAssignExp) e.copy();
890883
891884 if (auto lowering = cae.lowering)
892- cae.lowering = doInlineAs! Expression(cae.lowering, ids);
893- else
894- {
895- cae.e1 = doInlineAs! Expression(e.e1, ids);
896- cae.e2 = doInlineAs! Expression(e.e2, ids);
897- }
885+ cae.lowering = doInlineAs! Expression(lowering, ids);
886+ cae.e1 = doInlineAs! Expression(e.e1, ids);
887+ cae.e2 = doInlineAs! Expression(e.e2, ids);
898888
899889 result = cae;
900890 }
@@ -922,14 +912,12 @@ public:
922912
923913 override void visit (ConstructExp e)
924914 {
925- if (e.lowering)
926- {
927- auto ce = cast (ConstructExp)e.copy();
915+ auto ce = cast (ConstructExp)e.copy();
916+ if (ce.lowering)
928917 ce.lowering = doInlineAs! Expression(ce.lowering, ids);
929- result = ce;
930- }
931- else
932- visit(cast (AssignExp) e);
918+ ce.e1 = doInlineAs! Expression(e.e1, ids);
919+ ce.e2 = doInlineAs! Expression(e.e2, ids);
920+ result = ce;
933921 }
934922
935923 override void visit (LoweredAssignExp e)
@@ -977,6 +965,7 @@ public:
977965 memcpy(cast (void * )vto, cast (void * )vd, __traits(classInstanceSize, VarDeclaration));
978966 vto.parent = ids.parent;
979967 vto.csym = null ;
968+ vto.ctfeAdrOnStack = VarDeclaration.AdrOnStackNone;
980969
981970 ids.from.push(vd);
982971 ids.to.push(vto);
@@ -1005,6 +994,7 @@ public:
1005994 memcpy(cast (void * )vto, cast (void * )vd, __traits(classInstanceSize, VarDeclaration));
1006995 vto.parent = ids.parent;
1007996 vto.csym = null ;
997+ vto.ctfeAdrOnStack = VarDeclaration.AdrOnStackNone;
1008998
1009999 ids.from.push(vd);
10101000 ids.to.push(vto);
0 commit comments