1 /* $NetBSD: stmt_if.c,v 1.3 2023/03/28 14:44:35 rillig Exp $ */ 2 # 3 "stmt_if.c" 3 4 /* 5 * Test parsing of 'if' statements. 6 */ 7 8 /* lint1-extra-flags: -X 351 */ 9 10 void println(const char *); 11 12 void 13 dangling_else(int x) 14 { 15 if (x > 0) 16 if (x > 10) 17 println("> 10"); 18 /* This 'else' is bound to the closest unfinished 'if'. */ 19 else 20 println("> 0"); 21 /* 22 * If the above 'else' were bound to the other 'if', the next 'else' 23 * would have no corresponding 'if', resulting in a syntax error. 24 */ 25 else 26 println("not positive"); 27 /* expect+1: error: syntax error 'else' [249] */ 28 else 29 println("syntax error"); 30 } 31