Home | History | Annotate | Line # | Download | only in lint1
msg_249.c revision 1.11
      1  1.11  rillig /*	$NetBSD: msg_249.c,v 1.11 2022/06/16 21:24:41 rillig Exp $	*/
      2   1.1  rillig # 3 "msg_249.c"
      3   1.1  rillig 
      4   1.1  rillig // Test for message: syntax error '%s' [249]
      5   1.1  rillig 
      6   1.3  rillig /*
      7   1.4  rillig  * Cover the grammar rule 'top_level_declaration: error T_SEMI'.
      8   1.4  rillig  */
      9   1.4  rillig /* expect+1: syntax error '"' [249] */
     10   1.4  rillig "syntax error in top_level_declaration";
     11   1.4  rillig 
     12   1.4  rillig /* XXX: This is necessary to recover the yacc parser. */
     13   1.4  rillig int recover_from_semi;
     14   1.4  rillig 
     15   1.4  rillig /*
     16   1.4  rillig  * Cover the grammar rule 'top_level_declaration: error T_RBRACE'.
     17   1.4  rillig  */
     18   1.4  rillig /* expect+1: syntax error '"' [249] */
     19   1.4  rillig "syntax error in top_level_declaration"}
     20   1.4  rillig 
     21   1.4  rillig /* XXX: This is necessary to recover the yacc parser. */
     22   1.4  rillig int recover_from_rbrace;
     23   1.4  rillig 
     24   1.4  rillig /*
     25   1.3  rillig  * Before func.c 1.110 from 2021-06-19, lint ran into this:
     26   1.3  rillig  * assertion "cstmt->c_kind == kind" failed in end_control_statement
     27   1.3  rillig  */
     28   1.3  rillig void
     29   1.3  rillig function(void)
     30   1.3  rillig {
     31   1.9  rillig 	/* expect+2: warning: statement not reached [193] */
     32   1.3  rillig 	if (0)
     33   1.3  rillig 		;
     34  1.11  rillig 	/* expect+1: error: syntax error ')' [249] */
     35  1.11  rillig 	);
     36   1.3  rillig }
     37   1.4  rillig 
     38   1.5  rillig /* XXX: It is unexpected that this error is not detected. */
     39   1.5  rillig "This syntax error is not detected.";
     40   1.5  rillig 
     41   1.4  rillig /* XXX: This is necessary to recover the yacc parser. */
     42   1.5  rillig double recover_from_rparen;
     43   1.5  rillig 
     44   1.5  rillig /* Ensure that the declaration after the syntax error is processed. */
     45   1.5  rillig double *
     46   1.5  rillig access_declaration_after_syntax_error(void)
     47   1.5  rillig {
     48   1.5  rillig 	return &recover_from_rparen;
     49   1.5  rillig }
     50   1.6  rillig 
     51   1.6  rillig struct cover_member_declaration {
     52   1.6  rillig 	/* cover 'noclass_declmods ... notype_member_decls' */
     53   1.6  rillig 	const noclass_declmods;
     54   1.6  rillig 
     55   1.6  rillig 	/* cover 'noclass_declspecs ...' */
     56   1.6  rillig 	const int noclass_declspecs;
     57   1.6  rillig 
     58   1.8  rillig 	/* cover 'add_type_qualifier_list end_type' */
     59   1.7  rillig 	/* expect+1: error: syntax error 'member without type' [249] */
     60   1.6  rillig 	const;
     61   1.6  rillig };
     62  1.10  rillig 
     63  1.10  rillig /*
     64  1.10  rillig  * At this point, lint assumes that the following code is still in the
     65  1.10  rillig  * function 'access_declaration_after_syntax_error'.
     66  1.10  rillig  */
     67  1.10  rillig 
     68  1.10  rillig int gcc_statement_expression_1 = ({
     69  1.10  rillig /* expect+1: warning: label 'unused_label' unused in function 'access_declaration_after_syntax_error' [232] */
     70  1.10  rillig unused_label:
     71  1.10  rillig 	1;
     72  1.10  rillig 	1;
     73  1.10  rillig });
     74  1.10  rillig /* expect-1: error: non-constant initializer [177] */
     75  1.10  rillig 
     76  1.10  rillig /* Even another function definition does not help. */
     77  1.10  rillig void
     78  1.10  rillig try_to_recover(void)
     79  1.10  rillig {
     80  1.10  rillig }
     81  1.10  rillig 
     82  1.10  rillig int gcc_statement_expression_2 = ({
     83  1.10  rillig /* expect+1: warning: label 'unused_label' unused in function 'try_to_recover' [232] */
     84  1.10  rillig unused_label:
     85  1.10  rillig 	1;
     86  1.10  rillig 	1;
     87  1.10  rillig });
     88  1.10  rillig /* expect-1: error: non-constant initializer [177] */
     89