91 lines
2.2 KiB
C
91 lines
2.2 KiB
C
/* $NetBSD: msg_249.c,v 1.15 2024/01/28 08:17:27 rillig Exp $ */
|
|
# 3 "msg_249.c"
|
|
|
|
// Test for message: syntax error '%s' [249]
|
|
|
|
/* lint1-extra-flags: -X 351 */
|
|
|
|
/*
|
|
* Cover the grammar rule 'top_level_declaration: error T_SEMI'.
|
|
*/
|
|
/* expect+1: error: syntax error '"' [249] */
|
|
"syntax error in top_level_declaration";
|
|
|
|
/* XXX: This is necessary to recover the yacc parser. */
|
|
int recover_from_semi;
|
|
|
|
/*
|
|
* Cover the grammar rule 'top_level_declaration: error T_RBRACE'.
|
|
*/
|
|
/* expect+1: error: syntax error '"' [249] */
|
|
"syntax error in top_level_declaration"}
|
|
|
|
/* XXX: This is necessary to recover the yacc parser. */
|
|
int recover_from_rbrace;
|
|
|
|
/*
|
|
* Before func.c 1.110 from 2021-06-19, lint ran into this:
|
|
* assertion "cstmt->c_kind == kind" failed in end_control_statement
|
|
*/
|
|
void
|
|
function(void)
|
|
{
|
|
if (0)
|
|
/* expect+1: warning: statement not reached [193] */
|
|
;
|
|
/* expect+1: error: syntax error ')' [249] */
|
|
);
|
|
}
|
|
|
|
/* XXX: It is unexpected that this error is not detected. */
|
|
"This syntax error is not detected.";
|
|
|
|
/* XXX: This is necessary to recover the yacc parser. */
|
|
double recover_from_rparen;
|
|
|
|
/* Ensure that the declaration after the syntax error is processed. */
|
|
double *
|
|
access_declaration_after_syntax_error(void)
|
|
{
|
|
return &recover_from_rparen;
|
|
}
|
|
|
|
struct cover_member_declaration {
|
|
/* cover 'noclass_declmods ... notype_member_decls' */
|
|
const noclass_declmods;
|
|
|
|
/* cover 'noclass_declspecs ...' */
|
|
const int noclass_declspecs;
|
|
|
|
/* cover 'add_type_qualifier_list end_type' */
|
|
/* expect+1: error: syntax error 'member without type' [249] */
|
|
const;
|
|
};
|
|
|
|
/*
|
|
* At this point, lint assumes that the following code is still in the
|
|
* function 'access_declaration_after_syntax_error'.
|
|
*/
|
|
|
|
int gcc_statement_expression_1 = ({
|
|
unused_label:
|
|
1;
|
|
1;
|
|
/* expect+2: error: syntax error 'labels are only valid inside a function' [249] */
|
|
/* expect+1: error: non-constant initializer [177] */
|
|
});
|
|
|
|
/* Even another function definition does not help. */
|
|
void
|
|
try_to_recover(void)
|
|
{
|
|
}
|
|
|
|
int gcc_statement_expression_2 = ({
|
|
unused_label:
|
|
1;
|
|
1;
|
|
/* expect+2: error: syntax error 'labels are only valid inside a function' [249] */
|
|
/* expect+1: error: non-constant initializer [177] */
|
|
});
|