Author: martin
Date: 2005-05-02 10:01:35 -0400 (Mon, 02 May 2005)
New Revision: 43882
Modified:
trunk/mcs/gmcs/ChangeLog
trunk/mcs/gmcs/flowanalysis.cs
trunk/mcs/gmcs/statement.cs
Log:
2005-05-02 Martin Baulig <[EMAIL PROTECTED]>
Fix #74529.
* flowanalysis.cs (FlowBranching.UsageVector.MergeBreakOrigins):
Added `FlowBranching branching' argument; always `and' the
variables instead of `or'ing them unless we're an infinite loop.
* statement.cs (While.Resolve): Create a new sibling unless we're
infinite.
Modified: trunk/mcs/gmcs/ChangeLog
===================================================================
--- trunk/mcs/gmcs/ChangeLog 2005-05-02 13:26:28 UTC (rev 43881)
+++ trunk/mcs/gmcs/ChangeLog 2005-05-02 14:01:35 UTC (rev 43882)
@@ -1,5 +1,16 @@
2005-05-02 Martin Baulig <[EMAIL PROTECTED]>
+ Fix #74529.
+
+ * flowanalysis.cs (FlowBranching.UsageVector.MergeBreakOrigins):
+ Added `FlowBranching branching' argument; always `and' the
+ variables instead of `or'ing them unless we're an infinite loop.
+
+ * statement.cs (While.Resolve): Create a new sibling unless we're
+ infinite.
+
+2005-05-02 Martin Baulig <[EMAIL PROTECTED]>
+
Fix #70140.
* class.cs (ConstructorInitializer.Resolve): Added `Block block'
Modified: trunk/mcs/gmcs/flowanalysis.cs
===================================================================
--- trunk/mcs/gmcs/flowanalysis.cs 2005-05-02 13:26:28 UTC (rev 43881)
+++ trunk/mcs/gmcs/flowanalysis.cs 2005-05-02 14:01:35 UTC (rev 43882)
@@ -805,14 +805,14 @@
Report.Debug (1, " MERGING FINALLY ORIGIN
DONE", this);
}
- public void MergeBreakOrigins (UsageVector o_vectors)
+ public void MergeBreakOrigins (FlowBranching branching,
UsageVector o_vectors)
{
Report.Debug (1, " MERGING BREAK ORIGINS",
this);
if (o_vectors == null)
return;
- bool first = true;
+ bool first = branching.Infinite;
for (UsageVector vector = o_vectors; vector !=
null;
vector = vector.Next) {
@@ -1348,7 +1348,7 @@
{
UsageVector vector = base.Merge ();
- vector.MergeBreakOrigins (break_origins);
+ vector.MergeBreakOrigins (this, break_origins);
return vector;
}
Modified: trunk/mcs/gmcs/statement.cs
===================================================================
--- trunk/mcs/gmcs/statement.cs 2005-05-02 13:26:28 UTC (rev 43881)
+++ trunk/mcs/gmcs/statement.cs 2005-05-02 14:01:35 UTC (rev 43882)
@@ -349,6 +349,8 @@
}
ec.StartFlowBranching
(FlowBranching.BranchingType.Loop, loc);
+ if (!infinite)
+ ec.CurrentBranching.CreateSibling ();
if (!Statement.Resolve (ec))
ok = false;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches