Bug 42585

Summary: Switch fall-through not rejected
Product: [Mono] Compilers Reporter: neil.sculthorpe
Component: C#Assignee: Marek Safar <masafa>
Status: RESOLVED FIXED    
Severity: normal CC: mono-bugs+mono
Priority: ---    
Version: 4.2.0 (C6)   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:

Description neil.sculthorpe 2016-07-15 09:15:06 UTC
The following code compiles successfully using Mono 4.2.2 (with a warning about unreachable code):

switch (1) {
  case 1: {}
  default: {}
}

When executed, it crashes:

System.InvalidProgramException: Invalid IL code in Program:Main (): method body is empty.
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid IL code in Program:Main (): method body is empty.

I believe the compiler should reject this program because of the "no fall through" rule.

This seems to be a recurrence of Bug 17920 and Bug 23475; I'm not sure if it should already be fixed by Mono 4.2.2 or not.
Comment 1 Marek Safar 2016-07-27 09:59:47 UTC
Fixed in master and Mono 4.6