2006-05-26 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / gmcs / ChangeLog
index 1005c5b2aaf1d26a2e4c4905261fb15be73b89d9..3450861b9ccab0c224c4f4f5d0264e5a0b0f3d57 100644 (file)
@@ -1,5 +1,59 @@
+2006-05-26  Miguel de Icaza  <miguel@novell.com>
+
+       * cs-parser.jay: Catch another parsing form for arglist being
+       followed by other arguments.  Fixes #78313.
+
+2006-05-25  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #78324
+       * expression.cs (Binary.DoResolve): Use Nullable.LiftedBinaryOperator
+       also when one of the operands is a null literal.
+       * generic.cs (Nullable.LiftedBinaryOperator.EmitEquality): Rewrite
+       to improve clarity, and generate slightly better code.
+
+2006-05-24  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (FlowBranchingToplevel.AddReturnOrigin): Move
+       checking of out parameters to ...
+       (FlowBranchingToplevel.Merge): ... here.
+       (FlowBranchingException.AddBreakOrigin): If 'finally_vector' is
+       set, propagate the origin upward, and only complain if there was
+       no other error.
+       (FlowBranchingException.AddContinueOrigin): Likewise.
+       (FlowBranchingException.AddReturnOrigin): Likewise.
+       (FlowBranchingException.AddGotoOrigin): Likewise.       
+
+2006-05-23  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (UsageVector.MergeOrigins): If an origin is
+       unreachable, skip it.
+       (FlowBranchingException.Merge): Always propagate jumps, even if
+       the finally block renders subsequent code unreachable.
+
 2006-05-18  Raja R Harinath  <rharinath@novell.com>
 
+       Fix #77601
+       * statement.cs (Goto.Resolve): Move responsibility for resolving
+       'goto' to FlowBranching.AddGotoOrigin.
+       (Goto.SetResolvedTarget): New.  Callback to set the
+       LabeledStatement that's the target of the goto.
+       (Goto.DoEmit): Use Leave instead of Br when crossing an
+       unwind-protect boundary.
+       * flowanalysis.cs (FlowBranching.AddGotoOrigin): Rename from
+       LookupLabel and adjust to new semantics.
+       (FlowBranchingToplevel.AddGotoOrigin): Likewise.
+       (FlowBranchingBlock.AddGotoOrigin): Likewise. Use
+       Goto.SetResolvedTarget to update target.
+       (FlowBranchingLabeled.AddGotoOrigin): Likewise.
+       (FlowBranchingException.AddGotoOrigin): Rewrite to be similar to
+       AddBreakOrigin & co.  Delay propagation until ...
+       (FlowBranchingException.Merge): ... this.
+
+       * statement.cs (Block.Resolve): Always depend on flow-branching to
+       determine unreachability.  Kill workaround that originally emitted
+       only one statement after an "unreachable" label (see infloop in
+       test-515.cs).
+
        Fix #77869, #76148, #77755, #75255 and a host of other bugs.
        This is still "wrong", but anything better would probably need a
        multi-pass algorithm.