Bug 44751 - Incorrect code flow analysis with goto and out parameter causes CS0177
Summary: Incorrect code flow analysis with goto and out parameter causes CS0177
Status: RESOLVED FIXED
Alias: None
Product: Compilers
Classification: Mono
Component: C# (show other bugs)
Version: unspecified
Hardware: PC Windows
: --- normal
Target Milestone: ---
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2016-09-26 18:56 UTC by Jonathan Chambers
Modified: 2016-09-29 20:42 UTC (History)
1 user (show)

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


Attachments

Description Jonathan Chambers 2016-09-26 18:56:59 UTC
The following code fails to compile with Mono C# compiler while it compiles successfully with csc (or an older mono C# compiler).

GotoOutBug.cs(3,45): error CS0177: The out parameter `x' must be assigned to before control leaves the current method 
Compilation failed: 1 error(s), 0 warnings

public class GotoCodeFlowBug
{
	public static void Test(bool cond, out int x)
	{
		if (cond)
		{
			goto Label;
		}
		Label:
		x = 0;
	}
}
Comment 1 Marek Safar 2016-09-29 20:42:14 UTC
Fixed in master and Mono 4.8

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