cpphash.h (struct cpp_reader): New saved_flags.
authorNeil Booth <neil@daikokuya.demon.co.uk>
Wed, 31 Jan 2001 07:48:54 +0000 (07:48 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Wed, 31 Jan 2001 07:48:54 +0000 (07:48 +0000)
        * cpphash.h (struct cpp_reader): New saved_flags.
        * cppmacro.c (cpp_get_token): Use saved_flags to remember
        to avoid a paste after a pasted token.

From-SVN: r39366

gcc/ChangeLog
gcc/cpphash.h
gcc/cppmacro.c

index 0dfe8d6..e4016f1 100644 (file)
@@ -1,3 +1,9 @@
+2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+        * cpphash.h (struct cpp_reader): New saved_flags.
+        * cppmacro.c (cpp_get_token): Use saved_flags to remember
+        to avoid a paste after a pasted token.
+         
 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
 
        * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.
index 380f125..6874c21 100644 (file)
@@ -331,6 +331,9 @@ struct cpp_reader
   /* We're printed a warning recommending against using #import.  */
   unsigned char import_warning;
 
+  /* Used to flag the token after a paste AVOID_LPASTE.  */
+  unsigned char saved_flags;
+
   /* True after cpp_start_read completes.  Used to inhibit some
      warnings while parsing the command line.  */
   unsigned char done_initializing;
index aea7e5d..2d4663d 100644 (file)
@@ -906,7 +906,9 @@ cpp_get_token (pfile, token)
      cpp_reader *pfile;
      cpp_token *token;
 {
-  unsigned char flags = 0;
+  unsigned char flags = pfile->saved_flags;
+
+  pfile->saved_flags = 0;
 
   for (;;)
     {
@@ -922,7 +924,10 @@ cpp_get_token (pfile, token)
          *token = *context->list.first++;
          /* PASTE_LEFT tokens can only appear in macro expansions.  */
          if (token->flags & PASTE_LEFT)
-           paste_all_tokens (pfile, token);
+           {
+             paste_all_tokens (pfile, token);
+             pfile->saved_flags = AVOID_LPASTE;
+           }
        }
       else
        {