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:
Per Bothner 2003-08-09 22:14:07 +00:00 committed by Per Bothner
parent 3d93cdfa88
commit 4169c321d0
6 changed files with 34 additions and 13 deletions

View File

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

View File

@ -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]);

View File

@ -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;

View File

@ -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,

View File

@ -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 *);

View File

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