On 2/1/22 10:31, Jakub Jelinek wrote:
On Tue, Feb 01, 2022 at 10:03:57AM +0100, Jakub Jelinek via Gcc-patches wrote:
I wonder if we shouldn't replace that
       toks[0] = pfile->directive_result;
line with
       toks[0] = pfile->avoid_paste;
or even replace those
       toks = XNEW (cpp_token);
       toks[0] = pfile->directive_result;
lines with
       toks = &pfile->avoid_paste;

Here is a patch that does that, bootstrapped/regtested on powerpc64le-linux,
ok for trunk?

OK along with the previous patch and the (checking) assert in funlike_invocation_p.

2022-02-01  Jakub Jelinek  <ja...@redhat.com>

        * directives.cc (destringize_and_run): Push &pfile->avoid_paste
        instead of a copy of pfile->directive_result for the CPP_PADDING
        case.

--- libcpp/directives.cc.jj     2022-01-18 11:59:00.257972414 +0100
+++ libcpp/directives.cc        2022-02-01 13:39:27.240114485 +0100
@@ -1954,8 +1954,7 @@ destringize_and_run (cpp_reader *pfile,
    else
      {
        count = 1;
-      toks = XNEW (cpp_token);
-      toks[0] = pfile->directive_result;
+      toks = &pfile->avoid_paste;
/* If we handled the entire pragma internally, make sure we get the
         line number correct for the next token.  */


        Jakub


Reply via email to