From b0057e95fbd739a367c67164d1107f5d955dfcd8 Mon Sep 17 00:00:00 2001 From: tobi Date: Sat, 15 May 2004 17:31:32 +0000 Subject: PR fortran/13702 (Port from g95) * gfortran.h (gfc_linebuf): New typedef. (linebuf): Remove. (gfc_file): Revamped, use new gfc_linebuf. (locus): Revamped, use new types. (gfc_current_file): Remove. (gfc_current_form, gfc_source_file): New global variables. * match.c (gfc_match_space, gfc_match_strings): Use gfc_current_form to find source form. * module.c (gfc_dump_module): Use gfc_source_file when printing module header. * error.c (show_locus, show_loci) Use new data structures to print locus. * scanner.c (first_file, first_duplicated_file, gfc_current_file): Remove. (file_head, current_file, gfc_current_form, line_head, line_tail, gfc_current_locus1, gfc_source_file): New global variables. (gfc_scanner_init1): Set new global variables. (gfc_scanner_done1): Free new data structures. (gfc_current_locus): Return pointer to gfc_current_locus1. (gfc_set_locus): Set gfc_current_locus1. (gfc_at_eof): Set new variables. (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt to new locus structure. (gfc_check_include): Remove. (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1. (gfc_skip_comments): Use gfc_current_form, find locus with gfc_current_locus1. (gfc_next_char): Use gfc_current_form. (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1. (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix comment formatting. (get_file): New function. (preprocessor_line, include_line): New functions. (load_file): Move down, rewrite to match new data structures. (gfc_new_file): Rewrite to match new data structures. * parse.c (next_statement): Remove code which is now useless. Use gfc_source_form and gfc_source_file where appropriate. * trans-decl.c (gfc_get_label_decl): adapt to new data structures when determining locus of frontend code. * trans-io.c (set_error_locus): Same. * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise. * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from preprocessor flags. (all): Add missing initializers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81888 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/parse.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'gcc/fortran/parse.c') diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index beec9d622ba..dea613bce77 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -483,16 +483,6 @@ next_statement (void) gfc_skip_comments (); - if (gfc_at_bol () && gfc_check_include ()) - continue; - - if (gfc_at_eof () && gfc_current_file->included_by != NULL) - { - gfc_current_file = gfc_current_file->included_by; - gfc_advance_line (); - continue; - } - if (gfc_at_end ()) { st = ST_NONE; @@ -500,7 +490,8 @@ next_statement (void) } st = - (gfc_current_file->form == FORM_FIXED) ? next_fixed () : next_free (); + (gfc_current_form == FORM_FIXED) ? next_fixed () : next_free (); + if (st != ST_NONE) break; } @@ -1268,7 +1259,7 @@ unexpected_eof (void) { gfc_state_data *p; - gfc_error ("Unexpected end of file in '%s'", gfc_current_file->filename); + gfc_error ("Unexpected end of file in '%s'", gfc_source_file); /* Memory cleanup. Move to "second to last". */ for (p = gfc_state_stack; p && p->previous && p->previous->previous; -- cgit v1.2.3