summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-04-08 23:29:09 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-04-08 23:29:09 +0000
commit4e92a8df0c154f55f60a8ecef97bf6b0b5a1243f (patch)
tree095aa1b478270aae0c9b79838f76864799d3f0a3 /gcc
parenta2bdec1e4cf4eba56df547462c308e970f6f0722 (diff)
downloadgcc-4e92a8df0c154f55f60a8ecef97bf6b0b5a1243f.tar.gz
* c-lex.c (finput): New global.
(init_parse): Always included. Handle !USE_CPPLIB using code originally in compile_file. (finish_parse): Update for CPPLIB. * toplev.c (init_parse, finish_parse): Declare. (finput): Delete variable. Now in front-ends. (compile_file): Remove code which is now handled by init_parse which is unconditionally called. Similarly for finish_parse. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19063 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/c-lex.c29
-rw-r--r--gcc/toplev.c34
3 files changed, 41 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ff2e73b8c17..9849095bc7b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com)
+
+ * c-lex.c (finput): New global.
+ (init_parse): Always included. Handle !USE_CPPLIB using
+ code originally in compile_file.
+ (finish_parse): Update for CPPLIB.
+ * toplev.c (init_parse, finish_parse): Declare.
+ (finput): Delete variable. Now in front-ends.
+ (compile_file): Remove code which is now handled by init_parse
+ which is unconditionally called. Similarly for finish_parse.
+
Wed Apr 8 23:13:50 1998 Gavin Koch <gavin@cygnus.com>
* config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK,
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index 8e9e10c8fef..3a2eb0a7cc0 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -47,6 +47,9 @@ Boston, MA 02111-1307, USA. */
cpp_reader parse_in;
cpp_options parse_options;
static enum cpp_token cpp_token;
+#else
+/* Stream for reading from the input file. */
+FILE *finput;
#endif
/* The elements of `ridpointers' are identifier nodes
@@ -182,12 +185,30 @@ remember_protocol_qualifiers ()
wordlist[i].name = "oneway";
}
-#if USE_CPPLIB
void
init_parse (filename)
char *filename;
{
+#if !USE_CPPLIB
+ /* Open input file. */
+ if (filename == 0 || !strcmp (filename, "-"))
+ {
+ finput = stdin;
+ filename = "stdin";
+ }
+ else
+ finput = fopen (filename, "r");
+ if (finput == 0)
+ pfatal_with_name (filename);
+
+#ifdef IO_BUFFER_SIZE
+ setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE);
+#endif
+#endif /* !USE_CPPLIB */
+
init_lex ();
+
+#if USE_CPPLIB
yy_cur = "\n";
yy_lim = yy_cur+1;
@@ -198,14 +219,18 @@ init_parse (filename)
parse_in.show_column = 1;
if (! cpp_start_read (&parse_in, filename))
abort ();
+#endif
}
void
finish_parse ()
{
+#if USE_CPPLIB
cpp_finish (&parse_in);
-}
+#else
+ fclose (finput);
#endif
+}
void
init_lex ()
diff --git a/gcc/toplev.c b/gcc/toplev.c
index d226950dfec..90cc6f46e65 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -132,6 +132,8 @@ extern int size_directive_output;
extern tree last_assemble_variable_decl;
extern void init_lex ();
+extern void init_parse PVPROTO((char *));
+extern void finish_parse ();
extern void init_decl_processing ();
extern void init_obstacks ();
extern void init_tree_codes ();
@@ -200,11 +202,6 @@ char *input_filename;
char *main_input_filename;
-#if !USE_CPPLIB
-/* Stream for reading from the input file. */
-FILE *finput;
-#endif
-
/* Current line number in real source file. */
int lineno;
@@ -2273,33 +2270,11 @@ compile_file (name)
symout_time = 0;
dump_time = 0;
-#if !USE_CPPLIB
- /* Open input file. */
-
- if (name == 0 || !strcmp (name, "-"))
- {
- finput = stdin;
- name = "stdin";
- }
- else
- finput = fopen (name, "r");
- if (finput == 0)
- pfatal_with_name (name);
-
-#ifdef IO_BUFFER_SIZE
- setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE);
-#endif
-#endif /* !USE_CPPLIB */
-
/* Initialize data in various passes. */
init_obstacks ();
init_tree_codes ();
-#if USE_CPPLIB
init_parse (name);
-#else
- init_lex ();
-#endif
init_rtl ();
init_emit_once (debug_info_level == DINFO_LEVEL_NORMAL
|| debug_info_level == DINFO_LEVEL_VERBOSE
@@ -2827,11 +2802,8 @@ compile_file (name)
whether fclose returns an error, since the pages might still be on the
buffer chain while the file is open. */
-#if USE_CPPLIB
finish_parse ();
-#else
- fclose (finput);
-#endif
+
if (ferror (asm_out_file) != 0 || fclose (asm_out_file) != 0)
fatal_io_error (asm_file_name);