Author: martin
Date: 2005-05-02 10:01:58 -0400 (Mon, 02 May 2005)
New Revision: 43883

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/mcs/mcs/flowanalysis.cs
   trunk/mcs/mcs/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/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2005-05-02 14:01:35 UTC (rev 43882)
+++ trunk/mcs/mcs/ChangeLog     2005-05-02 14:01:58 UTC (rev 43883)
@@ -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/mcs/flowanalysis.cs
===================================================================
--- trunk/mcs/mcs/flowanalysis.cs       2005-05-02 14:01:35 UTC (rev 43882)
+++ trunk/mcs/mcs/flowanalysis.cs       2005-05-02 14:01:58 UTC (rev 43883)
@@ -808,14 +808,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) {
@@ -1351,7 +1351,7 @@
                {
                        UsageVector vector = base.Merge ();
 
-                       vector.MergeBreakOrigins (break_origins);
+                       vector.MergeBreakOrigins (this, break_origins);
 
                        return vector;
                }

Modified: trunk/mcs/mcs/statement.cs
===================================================================
--- trunk/mcs/mcs/statement.cs  2005-05-02 14:01:35 UTC (rev 43882)
+++ trunk/mcs/mcs/statement.cs  2005-05-02 14:01:58 UTC (rev 43883)
@@ -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

Reply via email to