Bug 28196 - FlowAnalysis issue with out parameter and finally and delegate containing a return
Summary: FlowAnalysis issue with out parameter and finally and delegate containing a r...
Status: RESOLVED FIXED
Alias: None
Product: Compilers
Classification: Mono
Component: C# (show other bugs)
Version: 3.12.0
Hardware: PC Linux
: --- normal
Target Milestone: ---
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2015-03-19 10:43 UTC by Timotheus Pokorra
Modified: 2015-03-27 02:38 UTC (History)
1 user (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
this file does not compile with Mono (782 bytes, text/x-csharp)
2015-03-19 10:43 UTC, Timotheus Pokorra
Details

Description Timotheus Pokorra 2015-03-19 10:43:13 UTC
Created attachment 10412 [details]
this file does not compile with Mono

I have attached a file that compiles fine with the Microsoft compiler, and also with Mono 3.2.3, but not with the latest Mono 3.12.1 mcs.

mcs TestDelegateFinallyOut.cs 
shows:

TestDelegateFinallyOut.cs(11,48): error CS0177: The out parameter `test' must be assigned to before control leaves the current method
Compilation failed: 1 error(s), 0 warnings

It compiles fine, if you drop the return inside the delegate, or if you drop the finally clause.

The error message originates here:
https://github.com/mono/mono/blob/master/mcs/mcs/statement.cs#L3712
 fc.Report.Error (177, p.Location,
   "The out parameter `{0}' must be assigned to before control leaves the current method",
   p.Parameter.Name);

This is how far I could debug it...
Comment 1 Marek Safar 2015-03-27 02:38:15 UTC
Fixed in master/mono 4.0

Note You need to log in before you can comment on or make changes to this bug.