c-lex.c (finput): New global.

* 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
This commit is contained in:
Dave Brolley 1998-04-08 23:29:09 +00:00 committed by Jeff Law
parent 62db76ee5f
commit e56e519de8
3 changed files with 41 additions and 33 deletions

View File

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

View File

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

View File

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