aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/c-opts.c3
-rw-r--r--gcc/cppfiles.c2
-rw-r--r--gcc/cppinit.c19
-rw-r--r--gcc/cpplib.h8
-rw-r--r--gcc/fix-header.c1
6 files changed, 34 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ebb836..dda02bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index e2a3043..462ca24 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -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]);
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 4c3608b..22e9524 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -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;
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 4ef7e24..07abea8 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -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,
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 57fc0b1..b6f58a9 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -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 *);
diff --git a/gcc/fix-header.c b/gcc/fix-header.c
index 0c55481..0f5f8c0 100644
--- a/gcc/fix-header.c
+++ b/gcc/fix-header.c
@@ -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);