* flowanalysis.cs (FlowBranching.UsageVector.MergeChild): If we're
a finite loop block, also do the ALWAYS->SOMETIMES for throws (not
just for returns).
svn path=/trunk/mcs/; revision=26086
+2004-04-27 Martin Baulig <martin@ximian.com>
+
+ * flowanalysis.cs (FlowBranching.UsageVector.MergeChild): If we're
+ a finite loop block, also do the ALWAYS->SOMETIMES for throws (not
+ just for returns).
+
2004-04-27 Martin Baulig <martin@ximian.com>
* statement.cs (Block.AddLabel): Also check for implicit blocks
update ();
}
+ public void SetThrowsSometimes ()
+ {
+ throws = FlowReturns.Sometimes;
+ update ();
+ }
+
public void SetBarrier ()
{
barrier = FlowReturns.Always;
// We're either finite or we may leave the loop.
new_r.SetReturnsSometimes ();
}
+ if (new_r.Throws == FlowReturns.Always) {
+ // We're either finite or we may leave the loop.
+ new_r.SetThrowsSometimes ();
+ }
}
} else if (branching.Type == BranchingType.Switch)
new_r.ResetBreaks ();