This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r187054 - in /trunk/libcpp: ChangeLog directive...
- From: dodji at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 02 May 2012 16:55:19 -0000
- Subject: r187054 - in /trunk/libcpp: ChangeLog directive...
Author: dodji
Date: Wed May 2 16:55:19 2012
New Revision: 187054
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187054
Log:
Properly initialize cpp_context in destringize_and_run
destringize_and_run forgets to initialize all the fields of the
cpp_context that it pushes. Later _cpp_pop_context then gets confused
when it accesses context->tokens_kind via the call to macro_of_context
on context->prev.
The first hunk of this patch is the real obvious fix. The second hunk
is just an assert that I am adding to err on the safe side.
Tested by on x86_64-unknown-linux-gnu against trunk by running the
test gcc.dg/gomp/macro-4.c under Valgrind, and bootstrapped.
libcpp/
* directives.c (destringize_and_run): Properly initialize the new
context.
* macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
the initial base context, which has the same life time as the
current instance of cpp_file.
Modified:
trunk/libcpp/ChangeLog
trunk/libcpp/directives.c
trunk/libcpp/macro.c