2003-01-07 Miguel de Icaza <miguel@ximian.com>
authorMiguel de Icaza <miguel@gnome.org>
Tue, 7 Jan 2003 20:23:07 +0000 (20:23 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Tue, 7 Jan 2003 20:23:07 +0000 (20:23 -0000)
* statement.cs (Goto.Resolve): Set `Returns' to ALWAYS.
(GotoDefault.Resolve): Set `Returns' to ALWAYS.
(GotoCase.Resolve): Set `Returns' to ALWAYS. Fixes the test-49 problem on windows

svn path=/trunk/mcs/; revision=10257

mcs/mcs/statement.cs

index 9714d9107ec62bed8e9680cfdb7a69818679f4ea..34b599643383e2568c18f2ca7dab2e52c4672ffc 100755 (executable)
@@ -691,6 +691,7 @@ namespace Mono.CSharp {
                                label.AddUsageVector (ec.CurrentBranching.CurrentUsageVector);
 
                        ec.CurrentBranching.CurrentUsageVector.Breaks = FlowReturns.ALWAYS;
+                       ec.CurrentBranching.CurrentUsageVector.Returns = FlowReturns.ALWAYS;
 
                        return true;
                }
@@ -798,7 +799,8 @@ namespace Mono.CSharp {
 
                public override bool Resolve (EmitContext ec)
                {
-                       ec.CurrentBranching.CurrentUsageVector.Breaks = FlowReturns.UNREACHABLE;
+                       ec.CurrentBranching.CurrentUsageVector.Breaks = FlowReturns.ALWAYS;
+                       ec.CurrentBranching.CurrentUsageVector.Returns = FlowReturns.ALWAYS;
                        return true;
                }
 
@@ -867,6 +869,7 @@ namespace Mono.CSharp {
                        label = sl.ILLabelCode;
 
                        ec.CurrentBranching.CurrentUsageVector.Breaks = FlowReturns.UNREACHABLE;
+                       ec.CurrentBranching.CurrentUsageVector.Returns = FlowReturns.ALWAYS;
                        return true;
                }
 
@@ -2024,7 +2027,7 @@ namespace Mono.CSharp {
                                                Report.Error (
                                                        177, loc, "The out parameter `" +
                                                        param_info.ParameterName (i) + "' must be " +
-                                                       "assigned before control leave the current method.");
+                                                       "assigned before control leaves the current method.");
                                                param_map [i] = 0;
                                                break;
                                        }