* c-parse.in (ends_in_label): Remove from %union and %type. (decls, stmts, lineno_stmt_or_labels, xstmts, lineno_stmt_or_label, stmt_or_label): Remove. (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt, lineno_stmt_decl_or_labels_ending_decl, lineno_stmt_decl_or_labels_ending_label, lineno_stmt_decl_or_labels_ending_error, lineno_stmt_decl_or_labels, compstmt_contents_nonempty, lineno_stmt, lineno_label): New. (compstmt_nostart): Use compstmt_contents_nonempty. testsuite: * gcc.dg/c99-mixdecl-1.c, gcc.dg/c90-mixdecl-1.c: New tests. From-SVN: r37429
26 lines
440 B
C
26 lines
440 B
C
/* Test for C99 mixed declarations and code. */
|
|
/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
|
|
/* { dg-do run } */
|
|
/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
|
|
|
|
extern void abort (void);
|
|
extern void exit (int);
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
int i = 0;
|
|
if (i != 0)
|
|
abort ();
|
|
i++;
|
|
if (i != 1)
|
|
abort ();
|
|
int j = i;
|
|
if (j != 1)
|
|
abort ();
|
|
struct foo { int i0; } k = { 4 };
|
|
if (k.i0 != 4)
|
|
abort ();
|
|
exit (0);
|
|
}
|