| /* { dg-options "-fdiagnostics-show-caret -Wno-switch-unreachable" } */ |
| |
| extern int foo (void); |
| |
| void missing_open_paren (void) |
| { |
| if foo ()) /* { dg-line missing_open_paren } */ |
| { |
| } |
| /* { dg-error "expected '\\(' before 'foo'" "" { target c } missing_open_paren } */ |
| /* { dg-begin-multiline-output "" } |
| if foo ()) |
| ^~~ |
| ( |
| { dg-end-multiline-output "" } */ |
| /* { dg-error "expected statement before '\\)' token" "" { target c } missing_open_paren } */ |
| /* { dg-begin-multiline-output "" } |
| if foo ()) |
| ^ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| void missing_close_square (void) |
| { |
| const char test [42; /* { dg-error "22: expected ']' before ';' token" } */ |
| /* { dg-begin-multiline-output "" } |
| const char test [42; |
| ^ |
| ] |
| { dg-end-multiline-output "" } */ |
| } |
| |
| int missing_semicolon (void) |
| { |
| return 42 /* { dg-error "expected ';'" } */ |
| } |
| /* { dg-begin-multiline-output "" } |
| return 42 |
| ^ |
| ; |
| } |
| ~ |
| { dg-end-multiline-output "" } */ |
| |
| |
| /* We don't offer a fix-it hint for this case in C, as it could be |
| colon or ellipsis. |
| TODO: we could be smarter about error-recovery here; given the |
| return perhaps we could assume a missing colon. */ |
| |
| int missing_colon_in_switch (int val) |
| { |
| switch (val) |
| { |
| case 42 |
| return 42; /* { dg-error "expected ':' or '...' before 'return'" } */ |
| /* { dg-begin-multiline-output "" } |
| return 42; |
| ^~~~~~ |
| { dg-end-multiline-output "" } */ |
| |
| default: |
| return val; |
| } |
| } |
| |
| /* { dg-begin-multiline-output "" } |
| int dummy; |
| ^~~ |
| { dg-end-multiline-output "" } */ |
| int dummy;/* { dg-error "expected declaration or statement at end of input" "" { target c } } */ |