| //@ compile-flags:-g |
| |
| #![allow(unused_variables)] |
| #![feature(omit_gdb_pretty_printer_section)] |
| #![omit_gdb_pretty_printer_section] |
| |
| // No need to actually run the debugger, just make sure that the compiler can |
| // handle locals in unreachable code. |
| |
| fn after_return() { |
| return; |
| let x = "0"; |
| let (ref y,z) = (1i32, 2u32); |
| match (20i32, 'c') { |
| (a, ref b) => {} |
| } |
| for a in &[111i32] {} |
| let test = if some_predicate() { 1 } else { 2 }; |
| while some_predicate() { |
| let abc = !some_predicate(); |
| } |
| loop { |
| let abc = !some_predicate(); |
| break; |
| } |
| // nested block |
| { |
| let abc = !some_predicate(); |
| |
| { |
| let def = !some_predicate(); |
| } |
| } |
| } |
| |
| fn after_panic() { |
| panic!(); |
| let x = "0"; |
| let (ref y,z) = (1i32, 2u32); |
| match (20i32, 'c') { |
| (a, ref b) => {} |
| } |
| for a in &[111i32] {} |
| let test = if some_predicate() { 1 } else { 2 }; |
| while some_predicate() { |
| let abc = !some_predicate(); |
| } |
| loop { |
| let abc = !some_predicate(); |
| break; |
| } |
| // nested block |
| { |
| let abc = !some_predicate(); |
| |
| { |
| let def = !some_predicate(); |
| } |
| } |
| } |
| |
| fn after_diverging_function() { |
| diverge(); |
| let x = "0"; |
| let (ref y,z) = (1i32, 2u32); |
| match (20i32, 'c') { |
| (a, ref b) => {} |
| } |
| for a in &[111i32] {} |
| let test = if some_predicate() { 1 } else { 2 }; |
| while some_predicate() { |
| let abc = !some_predicate(); |
| } |
| loop { |
| let abc = !some_predicate(); |
| break; |
| } |
| // nested block |
| { |
| let abc = !some_predicate(); |
| |
| { |
| let def = !some_predicate(); |
| } |
| } |
| } |
| |
| fn after_break() { |
| loop { |
| break; |
| let x = "0"; |
| let (ref y,z) = (1i32, 2u32); |
| match (20i32, 'c') { |
| (a, ref b) => {} |
| } |
| for a in &[111i32] {} |
| let test = if some_predicate() { 1 } else { 2 }; |
| while some_predicate() { |
| let abc = !some_predicate(); |
| } |
| loop { |
| let abc = !some_predicate(); |
| break; |
| } |
| // nested block |
| { |
| let abc = !some_predicate(); |
| |
| { |
| let def = !some_predicate(); |
| } |
| } |
| } |
| } |
| |
| fn after_continue() { |
| for _ in 0..10i32 { |
| continue; |
| let x = "0"; |
| let (ref y,z) = (1i32, 2u32); |
| match (20i32, 'c') { |
| (a, ref b) => {} |
| } |
| for a in &[111i32] {} |
| let test = if some_predicate() { 1 } else { 2 }; |
| while some_predicate() { |
| let abc = !some_predicate(); |
| } |
| loop { |
| let abc = !some_predicate(); |
| break; |
| } |
| // nested block |
| { |
| let abc = !some_predicate(); |
| |
| { |
| let def = !some_predicate(); |
| } |
| } |
| } |
| } |
| |
| fn main() { |
| after_return(); |
| after_panic(); |
| after_diverging_function(); |
| after_break(); |
| after_continue(); |
| } |
| |
| fn diverge() -> ! { |
| panic!(); |
| } |
| |
| fn some_predicate() -> bool { true || false } |