Home | History | Annotate | Line # | Download | only in lint1
      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