toplev.c (compile_file): Ignore return value from yyparse.

* toplev.c (compile_file): Ignore return value from yyparse.
	Always pop any nested binding levels after yyparse returns.

From-SVN: r46223
This commit is contained in:
Zack Weinberg 2001-10-12 03:34:39 +00:00 committed by Zack Weinberg
parent b14127e691
commit 7cb4ff28b1
2 changed files with 14 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2001-10-11 Zack Weinberg <zack@codesourcery.com>
* toplev.c (compile_file): Ignore return value from yyparse.
Always pop any nested binding levels after yyparse returns.
2001-10-11 Richard Henderson <rth@redhat.com>
* doc/c-tree.texi (Expression trees): Add VTABLE_REF.

View File

@ -2118,8 +2118,9 @@ pop_srcloc ()
lineno = input_file_stack->line;
}
/* Compile an entire file of output from cpp, named NAME.
Write a file of assembly output and various debugging dumps. */
/* Compile an entire translation unit, whose primary source file is
named NAME. Write a file of assembly output and various debugging
dumps. */
static void
compile_file (name)
@ -2140,7 +2141,7 @@ compile_file (name)
init_timevar ();
timevar_start (TV_TOTAL);
/* Open assembler code output file. Do this even if -fsyntax-only is on,
/* Open assembly code output file. Do this even if -fsyntax-only is on,
because then the driver will have provided the name of a temporary
file or bit bucket for us. */
@ -2324,17 +2325,12 @@ compile_file (name)
/* Call the parser, which parses the entire file
(calling rest_of_compilation for each function). */
yyparse ();
if (yyparse () != 0)
{
if (errorcount == 0)
fnotice (stderr, "Errors detected in input file (your bison.simple is out of date)\n");
/* In case there were missing closebraces,
get us back to the global binding level. */
while (! global_bindings_p ())
poplevel (0, 0, 0);
}
/* In case there were missing block closers,
get us back to the global binding level. */
while (! global_bindings_p ())
poplevel (0, 0, 0);
/* Compilation is now finished except for writing
what's left of the symbol table output. */