* 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.
From-SVN: r19063
+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,
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
wordlist[i].name = "oneway";
}
\f
-#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;
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 ()
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 ();
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;
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
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);