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: r168490
This commit is contained in:
Eric Botcazou 2011-01-04 23:18:12 +00:00 committed by Eric Botcazou
parent c7f15f802a
commit c5a62c6fde
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-11-17 Ian Lance Taylor <iant@google.com>
PR bootstrap/45538

View file

@ -281,16 +281,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)
{