cppfiles.c (cpp_make_system_header): New function.

* 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
This commit is contained in:
Zack Weinberg 2000-06-21 23:08:17 +00:00 committed by Zack Weinberg
parent 229e1e4c03
commit e605b0403e
5 changed files with 38 additions and 8 deletions

View 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.

View 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)

View 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;
}

View 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
}

View 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);