]> gcc.gnu.org Git - gcc.git/commitdiff
cppfiles.c (cpp_make_system_header): New function.
authorZack Weinberg <zack@wolery.cumb.org>
Wed, 21 Jun 2000 23:08:17 +0000 (23:08 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Wed, 21 Jun 2000 23:08:17 +0000 (23:08 +0000)
* cppfiles.c (cpp_make_system_header): New function.
* cpplib.h: Prototype it.
* cpplib.c (do_line, do_pragma_system_header): Use it.
* fix-header.c (read_scan_file): Use it.

* fix-header.c (check_macro_names): Cast second arg of
cpp_defined to const unsigned char *.
(read_scan_file): Make getchar_call const unsigned char.

From-SVN: r34641

gcc/ChangeLog
gcc/cppfiles.c
gcc/cpplib.c
gcc/cpplib.h
gcc/fix-header.c

index 30afc10a814a49fc23bcebbc60426b5409b54480..f5099262a9c3d4d8ffcf08a799c1398e2432b802 100644 (file)
@@ -1,3 +1,14 @@
+2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cppfiles.c (cpp_make_system_header): New function.
+       * cpplib.h: Prototype it.
+       * cpplib.c (do_line, do_pragma_system_header): Use it.
+       * fix-header.c (read_scan_file): Use it.
+
+       * fix-header.c (check_macro_names): Cast second arg of
+       cpp_defined to const unsigned char *.
+       (read_scan_file): Make getchar_call const unsigned char.
+
 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
 
        * cppfiles.c: Include splay-tree.h, not hashtab.h.
index 422a123a1e0ab3d657d1db9d9d8c0f33c420deaf..1598a3ee88351a983aa9a6230ec6a452f7f08e00 100644 (file)
@@ -308,6 +308,23 @@ _cpp_fake_include (pfile, fname)
   return (const char *)name;
 }
 
+/* Not everyone who wants to set system-header-ness on a buffer can
+   see the details of struct include_file.  This is an exported interface
+   because fix-header needs it.  */
+void
+cpp_make_system_header (pfile, pbuf, flag)
+     cpp_reader *pfile;
+     cpp_buffer *pbuf;
+     int flag;
+{
+  if (flag < 0 || flag > 2)
+    cpp_ice (pfile, "cpp_make_system_header: bad flag %d\n", flag);
+  else if (!pbuf->inc)
+    cpp_ice (pfile, "cpp_make_system_header called on non-file buffer");
+  else
+    pbuf->inc->sysp = flag;
+}
+
 #define PRINT_THIS_DEP(p, b) (CPP_PRINT_DEPS(p) > (b||p->system_include_depth))
 void
 _cpp_execute_include (pfile, f, len, no_reinclude, search_start)
index 3fc39dc06a47078649b201450152fc4013a96862..93798fac36faaf607096a8dbd8d9732d326199ba 100644 (file)
@@ -603,23 +603,23 @@ do_line (pfile)
          if (action_number == 1)
            {
              pfile->buffer_stack_depth++;
-             ip->inc->sysp = 0;
+             cpp_make_system_header (pfile, ip, 0);
              read_line_number (pfile, &action_number);
            }
          else if (action_number == 2)
            {
              pfile->buffer_stack_depth--;
-             ip->inc->sysp = 0;
+             cpp_make_system_header (pfile, ip, 0);
              read_line_number (pfile, &action_number);
            }
          if (action_number == 3)
            {
-             ip->inc->sysp = 1;
+             cpp_make_system_header (pfile, ip, 1);
              read_line_number (pfile, &action_number);
            }
          if (action_number == 4)
            {
-             ip->inc->sysp = 2;
+             cpp_make_system_header (pfile, ip, 2);
              read_line_number (pfile, &action_number);
            }
        }
@@ -978,7 +978,7 @@ do_pragma_system_header (pfile)
   if (CPP_PREV_BUFFER (ip) == NULL)
     cpp_warning (pfile, "#pragma system_header outside include file");
   else
-    ip->inc->sysp = 1;
+    cpp_make_system_header (pfile, ip, 1);
 
   return 1;
 }
index e79c2c8b74244daf22eb96a984992eaea5ae55a4..88efdf789bb896da7bc3ec7a816c4cbc90083776 100644 (file)
@@ -714,6 +714,8 @@ extern cpp_hashnode *cpp_lookup             PARAMS ((cpp_reader *,
 /* In cppfiles.c */
 extern int cpp_included                        PARAMS ((cpp_reader *, const char *));
 extern int cpp_read_file               PARAMS ((cpp_reader *, const char *));
+extern void cpp_make_system_header     PARAMS ((cpp_reader *,
+                                                cpp_buffer *, int));
 
 #ifdef __cplusplus
 }
index 3740ce05ca91d2b4643c528c4835dbfe3e2d242c..473ef7aee99911f984f135daeadccf8eb8a4de50 100644 (file)
@@ -606,7 +606,7 @@ check_macro_names (pfile, names)
   while (*names)
     {
       len = strlen (names);
-      if (cpp_defined (pfile, names, len))
+      if (cpp_defined (pfile, (const unsigned char *)names, len))
        recognized_macro (names);
       names += len + 1;
     }
@@ -640,7 +640,7 @@ read_scan_file (in_fname, argc, argv)
     exit (FATAL_EXIT_CODE);
 
   /* We are scanning a system header, so mark it as such.  */
-  CPP_BUFFER (&scan_in)->system_header_p = 1;
+  cpp_make_system_header (&scan_in, CPP_BUFFER (&scan_in), 1);
 
   scan_decls (&scan_in, argc, argv);
   for (cur_symbols = &symbol_table[0]; cur_symbols->names; cur_symbols++)
@@ -657,7 +657,7 @@ read_scan_file (in_fname, argc, argv)
   if (special_file_handling == stdio_h
       && (fn = lookup_std_proto ("_filbuf", 7)) != NULL)
     {
-      static char getchar_call[] = "getchar();";
+      static const unsigned char getchar_call[] = "getchar();";
       int old_written = CPP_WRITTEN (&scan_in);
       int seen_filbuf = 0;
       cpp_buffer *buf = CPP_BUFFER (&scan_in);
This page took 0.088359 seconds and 5 git commands to generate.