From e56e519de8211b657741d6e7bd5fae0db71405c9 Mon Sep 17 00:00:00 2001 From: Dave Brolley Date: Wed, 8 Apr 1998 23:29:09 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 11 +++++++++++ gcc/c-lex.c | 29 +++++++++++++++++++++++++++-- gcc/toplev.c | 34 +++------------------------------- 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 * 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); -- 2.30.2