re PR preprocessor/39213 (Preprocessor ICE with -m64 and --traditional-cpp)

PR preprocessor/39213
	* directives.c (end_directive): Call _cpp_remove_overlay for deferred
	pragmas as well in traditional mode.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r168492
This commit is contained in:
Eric Botcazou 2011-01-04 23:18:52 +00:00 committed by Eric Botcazou
parent 776c50220f
commit d00dc3c26f
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
Jakub Jelinek <jakub@redhat.com>
PR preprocessor/39213
* directives.c (end_directive): Call _cpp_remove_overlay for deferred
pragmas as well in traditional mode.
2010-10-01 Release Manager
* GCC 4.4.5 released.

View File

@ -276,16 +276,17 @@ start_directive (cpp_reader *pfile)
static void
end_directive (cpp_reader *pfile, int skip_line)
{
if (pfile->state.in_deferred_pragma)
;
else if (CPP_OPTION (pfile, traditional))
if (CPP_OPTION (pfile, traditional))
{
/* Revert change of prepare_directive_trad. */
pfile->state.prevent_expansion--;
if (!pfile->state.in_deferred_pragma)
pfile->state.prevent_expansion--;
if (pfile->directive != &dtable[T_DEFINE])
_cpp_remove_overlay (pfile);
}
else if (pfile->state.in_deferred_pragma)
;
/* We don't skip for an assembler #. */
else if (skip_line)
{