re PR c/28649 (Poor error recovery of C parser)
PR c/28649 * c-parser.c (c_parser_compound_statement_nostart): Reset parser->error after each statement. * gcc.dg/parse-error-1.c: New test. * gcc.dg/parse-error-2.c: New test. * gcc.dg/cpp/digraph2.c: Add error-marker. * gcc.dg/noncompile/920923-1.c: Likewise. From-SVN: r116157
This commit is contained in:
parent
482e4739cd
commit
2c14ae9a7b
|
@ -1,3 +1,9 @@
|
|||
2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
|
||||
PR c/28649
|
||||
* c-parser.c (c_parser_compound_statement_nostart): Reset
|
||||
parser->error after each statement.
|
||||
|
||||
2006-08-15 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/28713
|
||||
|
|
|
@ -3486,6 +3486,8 @@ c_parser_compound_statement_nostart (c_parser *parser)
|
|||
last_stmt = true;
|
||||
c_parser_statement_after_labels (parser);
|
||||
}
|
||||
|
||||
parser->error = false;
|
||||
}
|
||||
if (last_label)
|
||||
error ("label at end of compound statement");
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
|
||||
PR c/28649
|
||||
* gcc.dg/parse-error-1.c: New test.
|
||||
* gcc.dg/parse-error-2.c: New test.
|
||||
* gcc.dg/cpp/digraph2.c: Add error-marker.
|
||||
* gcc.dg/noncompile/920923-1.c: Likewise.
|
||||
|
||||
2006-08-14 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR c/27490
|
||||
|
|
|
@ -13,7 +13,7 @@ int main (int argc, char *argv[])
|
|||
|
||||
/* Place this after main () so we get to test both the compiler above
|
||||
and the preprocessor below. */
|
||||
%:define glue
|
||||
%:define glue /* { dg-error "expected declaration" } */
|
||||
#ifdef glue
|
||||
#error glue is defined!
|
||||
#endif
|
||||
|
|
|
@ -56,7 +56,7 @@ caddr_t v_addr; /* { dg-error "expected" } */
|
|||
{
|
||||
register prec_t bucket;
|
||||
register caddr_t p_addr; /* { dg-error "expected|undeclared" } */
|
||||
bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask);
|
||||
bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask); /* { dg-error "undeclared" } */
|
||||
do {
|
||||
if (bucket->v_addr == ((v_addr)>>ITEMBITS) { /* { dg-error "expected|undeclared|no member" } */
|
||||
if(!(bucket->perm_set&va_op))
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
/* PR c/28649 */
|
||||
/* { dg-do compile } */
|
||||
|
||||
void foo()
|
||||
{
|
||||
+; /* { dg-error "expected expression" } */
|
||||
+; /* { dg-error "expected expression" } */
|
||||
}
|
||||
|
||||
int +; /* { dg-error "expected identifier" } */
|
|
@ -0,0 +1,14 @@
|
|||
/* PR c/28649 */
|
||||
/* { dg-do compile } */
|
||||
|
||||
void foo()
|
||||
{
|
||||
+; /* { dg-error "expected expression" } */
|
||||
}
|
||||
|
||||
int i;
|
||||
|
||||
void bar()
|
||||
{
|
||||
i++; /* { dg-bogus "undeclared" } */
|
||||
}
|
Loading…
Reference in New Issue