| // REQUIRED_ARGS: -o- -w |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/warn12809.d(25): Warning: statement is not reachable |
| fail_compilation/warn12809.d(33): Warning: statement is not reachable |
| --- |
| */ |
| |
| //void test_unrachable1() |
| //{ |
| // try assert(0); |
| // finally |
| // { |
| // int x = 1; // unreachable |
| // } |
| //} |
| |
| void test_unrachable2() |
| { |
| try assert(0); |
| finally {} |
| |
| int x = 1; // unreachable |
| } |
| |
| void test_unrachable3() |
| { |
| try {} |
| finally assert(0); |
| |
| int x = 1; // unreachable |
| } |
| |
| /********************************************/ |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/warn12809.d(108): Warning: statement is not reachable |
| fail_compilation/warn12809.d(115): Warning: statement is not reachable |
| fail_compilation/warn12809.d(122): Warning: statement is not reachable |
| Error: warnings are treated as errors |
| Use -wi if you wish to treat warnings only as informational. |
| --- |
| */ |
| |
| #line 100 |
| |
| alias noreturn = typeof(*null); |
| |
| noreturn foo(); |
| |
| void test1(ref int i) |
| { |
| foo(); |
| i = 3; |
| } |
| |
| void test2() |
| { |
| try foo(); |
| finally { } |
| int x = 1; |
| } |
| |
| void test3() |
| { |
| try { } |
| finally foo(); |
| int x = 1; |
| } |