mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-12 21:33:54 +08:00
cppinit.c (cpp_read_main_file): Split out source-independent initialization to separate function ...
* cppinit.c (cpp_read_main_file): Split out source-independent initialization to separate function ... (cpp_post_options): New function. * cppfiles.c (cpp_stack_file): Rename public name to ... (_cpp_stack_file): New internal function name. * cpplib.h: Update accordingly. * cppinit.c: (cpp_create_reader): Initialize cpp_readers line here. (cpp_read_main_file): Don't initialize line here. * c-opts.c (c_common_post_options): Call cpp_post_options. (c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file. * fix-header.c (read_scan_file): Call cpp_post_options. From-SVN: r70279
This commit is contained in:
parent
3d93cdfa88
commit
4169c321d0
@ -1,3 +1,17 @@
|
||||
2003-08-09 Per Bothner <pbothner@apple.com>
|
||||
|
||||
* cppinit.c (cpp_read_main_file): Split out source-independent
|
||||
initialization to separate function ...
|
||||
(cpp_post_options): New function.
|
||||
* cppfiles.c (cpp_stack_file): Rename public name to ...
|
||||
(_cpp_stack_file): New internal function name.
|
||||
* cpplib.h: Update accordingly.
|
||||
* cppinit.c: (cpp_create_reader): Initialize cpp_readers line here.
|
||||
(cpp_read_main_file): Don't initialize line here.
|
||||
* c-opts.c (c_common_post_options): Call cpp_post_options.
|
||||
(c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file.
|
||||
* fix-header.c (read_scan_file): Call cpp_post_options.
|
||||
|
||||
2003-08-09 Per Bothner <per@bothner.com>
|
||||
|
||||
* c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation.
|
||||
|
@ -1126,6 +1126,7 @@ c_common_post_options (const char **pfilename)
|
||||
}
|
||||
|
||||
cpp_get_callbacks (parse_in)->file_change = cb_file_change;
|
||||
cpp_post_options (parse_in);
|
||||
|
||||
/* NOTE: we use in_fname here, not the one supplied. */
|
||||
*pfilename = cpp_read_main_file (parse_in, in_fnames[0]);
|
||||
@ -1196,7 +1197,7 @@ c_common_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
|
||||
|
||||
/* Reset cpplib's macros and start a new file. */
|
||||
cpp_undef_all (parse_in);
|
||||
cpp_stack_file (parse_in, in_fnames[file_index]);
|
||||
cpp_read_main_file (parse_in, in_fnames[file_index]);
|
||||
}
|
||||
|
||||
finish_options(in_fnames[file_index]);
|
||||
|
@ -696,7 +696,7 @@ dir_name_of_file (_cpp_file *file)
|
||||
/* Push an input buffer with the contents of FNAME, the empty string
|
||||
for standard input. Return true if a buffer was stacked. */
|
||||
bool
|
||||
cpp_stack_file (cpp_reader *pfile, const char *fname)
|
||||
_cpp_stack_file (cpp_reader *pfile, const char *fname)
|
||||
{
|
||||
struct cpp_dir *dir = &pfile->no_search_path;
|
||||
|
||||
|
@ -170,6 +170,7 @@ cpp_create_reader (enum c_lang lang, hash_table *table)
|
||||
/* Initialize the line map. Start at logical line 1, so we can use
|
||||
a line number of zero for special states. */
|
||||
linemap_init (&pfile->line_maps);
|
||||
pfile->line = 1;
|
||||
|
||||
/* Initialize lexer state. */
|
||||
pfile->state.save_comments = ! CPP_OPTION (pfile, discard_comments);
|
||||
@ -434,11 +435,9 @@ cpp_add_dependency_target (cpp_reader *pfile, const char *target, int quote)
|
||||
}
|
||||
|
||||
/* This is called after options have been parsed, and partially
|
||||
processed. Setup for processing input from the file named FNAME,
|
||||
or stdin if it is the empty string. Return the original filename
|
||||
on success (e.g. foo.i->foo.c), or NULL on failure. */
|
||||
const char *
|
||||
cpp_read_main_file (cpp_reader *pfile, const char *fname)
|
||||
processed. */
|
||||
void
|
||||
cpp_post_options (cpp_reader *pfile)
|
||||
{
|
||||
sanity_checks (pfile);
|
||||
|
||||
@ -447,7 +446,14 @@ cpp_read_main_file (cpp_reader *pfile, const char *fname)
|
||||
/* Mark named operators before handling command line macros. */
|
||||
if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names))
|
||||
mark_named_operators (pfile);
|
||||
}
|
||||
|
||||
/* Setup for processing input from the file named FNAME,
|
||||
or stdin if it is the empty string. Return the original filename
|
||||
on success (e.g. foo.i->foo.c), or NULL on failure. */
|
||||
const char *
|
||||
cpp_read_main_file (cpp_reader *pfile, const char *fname)
|
||||
{
|
||||
if (CPP_OPTION (pfile, deps.style) != DEPS_NONE)
|
||||
{
|
||||
if (!pfile->deps)
|
||||
@ -457,8 +463,7 @@ cpp_read_main_file (cpp_reader *pfile, const char *fname)
|
||||
deps_add_default_target (pfile->deps, fname);
|
||||
}
|
||||
|
||||
pfile->line = 1;
|
||||
if (!cpp_stack_file (pfile, fname))
|
||||
if (! _cpp_stack_file (pfile, fname))
|
||||
return NULL;
|
||||
|
||||
/* Set this here so the client can change the option if it wishes,
|
||||
|
@ -533,13 +533,13 @@ extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);
|
||||
too. If there was an error opening the file, it returns NULL. */
|
||||
extern const char *cpp_read_main_file (cpp_reader *, const char *);
|
||||
|
||||
/* Stacks a new file. It will return false if there was an error
|
||||
opening the file. */
|
||||
extern bool cpp_stack_file (cpp_reader *, const char *);
|
||||
|
||||
/* Set up built-ins like __FILE__. */
|
||||
extern void cpp_init_builtins (cpp_reader *, int);
|
||||
|
||||
/* This is called after options have been parsed, and partially
|
||||
processed. */
|
||||
extern void cpp_post_options (cpp_reader *);
|
||||
|
||||
/* Set up translation to the target character set. */
|
||||
extern void cpp_init_iconv (cpp_reader *);
|
||||
|
||||
|
@ -602,6 +602,7 @@ read_scan_file (char *in_fname, int argc, char **argv)
|
||||
options = cpp_get_options (scan_in);
|
||||
options->inhibit_warnings = 1;
|
||||
options->inhibit_errors = 1;
|
||||
cpp_post_options (scan_in);
|
||||
|
||||
if (! cpp_read_main_file (scan_in, in_fname))
|
||||
exit (FATAL_EXIT_CODE);
|
||||
|
Loading…
Reference in New Issue
Block a user