[mcs] Add missing vector cloning of definite assignment on-true. Fixes #57505
[mono.git] / mcs / mcs / statement.cs
index dd7f737139ea372f64af929377608936fd582120..7a379fc172aff0bd375aefb7cdbee386f7e4f0c4 100644 (file)
@@ -269,7 +269,7 @@ namespace Mono.CSharp {
 
                        var da_false = new DefiniteAssignmentBitSet (fc.DefiniteAssignmentOnFalse);
 
-                       fc.DefiniteAssignment = fc.DefiniteAssignmentOnTrue;
+                       fc.BranchDefiniteAssignment (fc.DefiniteAssignmentOnTrue);
                        var labels = fc.CopyLabelStack ();
 
                        var res = TrueStatement.FlowAnalysis (fc);
@@ -578,9 +578,10 @@ namespace Mono.CSharp {
                {
                        expr.FlowAnalysisConditional (fc);
 
-                       fc.DefiniteAssignment = fc.DefiniteAssignmentOnTrue;
                        var da_false = new DefiniteAssignmentBitSet (fc.DefiniteAssignmentOnFalse);
 
+                       fc.BranchDefiniteAssignment (fc.DefiniteAssignmentOnTrue);
+
                        Statement.FlowAnalysis (fc);
 
                        //