cpphash.h (struct cpp_reader): Remove import_warning.
authorNeil Booth <neil@cat.daikokuya.demon.co.uk>
Sun, 29 Jul 2001 22:27:20 +0000 (22:27 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Sun, 29 Jul 2001 22:27:20 +0000 (22:27 +0000)
* cpphash.h (struct cpp_reader): Remove import_warning.
* cpplib.c (skip_rest_of_line): Don't bother turning off
macro expansion.
(parse_include): Move include handling to...
(do_include_common): ... here.  Move import warning from...
(do_import): ... here.
(do_pragma_poison): Don't do a callback for poison identifiers.
* cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
* cppmain.c (setup_callbacks): Similarly.

From-SVN: r44466

gcc/ChangeLog
gcc/cpphash.h
gcc/cpplib.c
gcc/cpplib.h
gcc/cppmain.c

index e332746b013e78e1605cfb7390fcb610a4ddfa74..74949b3aacc7bdb494b59ddf5e34c1e82adbbbf3 100644 (file)
@@ -1,3 +1,15 @@
+2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
+
+       * cpphash.h (struct cpp_reader): Remove import_warning.
+       * cpplib.c (skip_rest_of_line): Don't bother turning off
+       macro expansion.
+       (parse_include): Move include handling to...
+       (do_include_common): ... here.  Move import warning from...
+       (do_import): ... here.
+       (do_pragma_poison): Don't do a callback for poison identifiers.
+       * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
+       * cppmain.c (setup_callbacks): Similarly.
+
 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
index 368fe46f2871610f12abb3cc42e17e4a3196aa08..82746b5e24cdc88783892cbab0720f7c684c8a79 100644 (file)
@@ -333,9 +333,6 @@ struct cpp_reader
      preprocessor.  */
   struct spec_nodes spec_nodes;
 
-  /* We're printed a warning recommending against using #import.  */
-  unsigned char import_warning;
-
   /* Whether to print our version number.  Done this way so
      we don't get it twice for -v -version.  */
   unsigned char print_version;
index 8f9f54c8be6ecfb283f81c84660b3c8ccded7b2a..cea54f42cc650b8ae9f61d8a9c543061c2c15218 100644 (file)
@@ -194,10 +194,8 @@ skip_rest_of_line (pfile)
     _cpp_pop_context (pfile);
 
   /* Sweep up all tokens remaining on the line.  */
-  pfile->state.prevent_expansion++;
   while (!pfile->state.next_bol)
     _cpp_lex_token (pfile, &token);
-  pfile->state.prevent_expansion--;
 }
 
 /* Ensure there are no stray tokens at the end of a directive.  */
@@ -565,10 +563,9 @@ parse_include (pfile, header)
      cpp_reader *pfile;
      cpp_token *header;
 {
-  int is_pragma = pfile->directive == &dtable[T_PRAGMA];
   const unsigned char *dir;
 
-  if (is_pragma)
+  if (pfile->directive == &dtable[T_PRAGMA])
     dir = U"pragma dependency";
   else
     dir = pfile->directive->name;
@@ -592,15 +589,6 @@ parse_include (pfile, header)
       return 1;
     }
 
-  if (!is_pragma)
-    {
-      check_eol (pfile);
-      /* Get out of macro context, if we are.  */
-      skip_rest_of_line (pfile);
-      if (pfile->cb.include)
-       (*pfile->cb.include) (pfile, dir, header);
-    }
-
   return 0;
 }
 
@@ -612,22 +600,32 @@ do_include_common (pfile, type)
 {
   cpp_token header;
 
+  /* For #include_next, if this is the primary source file, warn and
+     use the normal search logic.  */
+  if (type == IT_INCLUDE_NEXT && ! pfile->buffer->prev)
+    {
+      cpp_warning (pfile, "#include_next in primary source file");
+      type = IT_INCLUDE;
+    }
+  else if (type == IT_IMPORT && CPP_OPTION (pfile, warn_import))
+    {
+      CPP_OPTION (pfile, warn_import) = 0;
+      cpp_warning (pfile,
+          "#import is obsolete, use an #ifndef wrapper in the header file");
+    }
+
   if (!parse_include (pfile, &header))
     {
       /* Prevent #include recursion.  */
       if (pfile->buffer_stack_depth >= CPP_STACK_MAX)
        cpp_fatal (pfile, "#include nested too deeply");
-      else if (pfile->context->prev)
-       cpp_ice (pfile, "attempt to push file buffer with contexts stacked");
       else
        {
-         /* For #include_next, if this is the primary source file,
-            warn and use the normal search logic.  */
-         if (type == IT_INCLUDE_NEXT && ! pfile->buffer->prev)
-           {
-             cpp_warning (pfile, "#include_next in primary source file");
-             type = IT_INCLUDE;
-           }
+         check_eol (pfile);
+         /* Get out of macro context, if we are.  */
+         skip_rest_of_line (pfile);
+         if (pfile->cb.include)
+           (*pfile->cb.include) (pfile, pfile->directive->name, &header);
 
          _cpp_execute_include (pfile, &header, type);
        }
@@ -645,13 +643,6 @@ static void
 do_import (pfile)
      cpp_reader *pfile;
 {
-  if (!pfile->import_warning && CPP_OPTION (pfile, warn_import))
-    {
-      pfile->import_warning = 1;
-      cpp_warning (pfile,
-          "#import is obsolete, use an #ifndef wrapper in the header file");
-    }
-
   do_include_common (pfile, IT_IMPORT);
 }
 
@@ -1111,11 +1102,6 @@ do_pragma_poison (pfile)
       hp->flags |= NODE_POISONED | NODE_DIAGNOSTIC;
     }
   pfile->state.poisoned_ok = 0;
-
-#if 0                          /* Doesn't quite work yet.  */
-  if (tok.type == CPP_EOF && pfile->cb.poison)
-    (*pfile->cb.poison) (pfile);
-#endif
 }
 
 /* Mark the current header as a system header.  This will suppress
index 4e24ef7f0050563764fd7df7680edb480fdf3d7e..58e4af60316047a5d1b1785f2f2bc3dd148737e2 100644 (file)
@@ -411,7 +411,6 @@ struct cpp_callbacks
                             const cpp_token *));
     void (*define) PARAMS ((cpp_reader *, cpp_hashnode *));
     void (*undef) PARAMS ((cpp_reader *, cpp_hashnode *));
-    void (*poison) PARAMS ((cpp_reader *));
     void (*ident) PARAMS ((cpp_reader *, const cpp_string *));
     void (*def_pragma) PARAMS ((cpp_reader *));
 };
index b946a8e66eecf28f372a87112ea9f06cf10d2d90..8f1982f53892544b82b4b714312ca4ebd0398c51 100644 (file)
@@ -193,7 +193,6 @@ setup_callbacks ()
     {
       cb->define = cb_define;
       cb->undef  = cb_undef;
-      cb->poison = cb_def_pragma;
     }
 }