Fix token pasting with -ftrack-macro-expansion
authordodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Apr 2012 11:41:21 +0000 (11:41 +0000)
committerdodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Apr 2012 11:41:21 +0000 (11:41 +0000)
commitc55700de48b0df2d512249d4ebfaed1b98abea05
tree1d4cb06aa5ecf72c6a60528b1d81bb97c5bb8175
parentd16f4f479d3b7600c9eb1552a0cd4aaccef43ee1
Fix token pasting with -ftrack-macro-expansion

This patch makes token pasting work with -ftrack-macro-expansion
turned on.  It improves some pasting related tests of the gcc.dg/cpp
subdirectory.

Tested and bootstrapped on x86_64-unknown-linux-gnu against trunk.

Note that the bootstrap with -ftrack-macro-expansion exhibits other
separate issues that are addressed in subsequent patches.  This patch
just fixes one class of problems.

The patch does pass bootstrap with -ftrack-macro-expansion turned off,
though.

libcpp/

* macro.c (paste_all_tokens): Put the token resulting from pasting
into an extended token context with -ftrack-macro-location is in
effect.

gcc/testsuite/

* gcc.dg/cpp/paste17.c: New test case for
-ftrack-macro-expansion=2 mode only.
* gcc.dg/cpp/macro-exp-tracking-5.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186966 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/macro-exp-tracking-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/cpp/paste17.c [new file with mode: 0644]
libcpp/ChangeLog
libcpp/macro.c