From f30aaeef276ebb4284645988b8d5d74048e69699 Mon Sep 17 00:00:00 2001 From: fxcoudert Date: Fri, 16 Nov 2007 22:20:44 +0000 Subject: [PATCH] PR fortran/33739 PR fortran/34084 * scanner.c (start_source_file, end_source_file, exit_remaining_files, gfc_advance_line): Revert rev. 130016. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130244 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 7 +++++++ gcc/fortran/scanner.c | 56 ++++++--------------------------------------------- 2 files changed, 13 insertions(+), 50 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index fb94711..57670b5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2007-11-16 Francois-Xavier Coudert + + PR fortran/33739 + PR fortran/34084 + * scanner.c (start_source_file, end_source_file, + exit_remaining_files, gfc_advance_line): Revert rev. 130016. + 2007-11-16 Paul Thomas PR fortran/34008 diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index 89aef49..b9e7114 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -300,59 +300,13 @@ gfc_at_eol (void) } -struct file_entered_chainon -{ - gfc_file *file; - struct file_entered_chainon *prev; -}; - -static struct file_entered_chainon *last_file_entered = NULL; - -static void -start_source_file (int line, gfc_file *file) -{ - struct file_entered_chainon *f = gfc_getmem (sizeof - (struct file_entered_chainon)); - - f->file = file; - f->prev = last_file_entered; - last_file_entered = f; - - (*debug_hooks->start_source_file) (line, file->filename); -} - -static void -end_source_file (int line) -{ - gcc_assert (last_file_entered); - last_file_entered = last_file_entered->prev; - (*debug_hooks->end_source_file) (line); -} - -static void -exit_remaining_files (void) -{ - struct file_entered_chainon *f = last_file_entered; - while (f) - { - /* The line number doesn't matter much, because we're at the end of - the toplevel file anyway. */ - (*debug_hooks->end_source_file) (0); - - f = f->prev; - } -} - /* Advance the current line pointer to the next line. */ void gfc_advance_line (void) { if (gfc_at_end ()) - { - exit_remaining_files (); - return; - } + return; if (gfc_current_locus.lb == NULL) { @@ -368,15 +322,17 @@ gfc_advance_line (void) && gfc_current_locus.lb->file->up == gfc_current_locus.lb->next->file) { /* We exit from an included file. */ - end_source_file (gfc_linebuf_linenum (gfc_current_locus.lb->next)); + (*debug_hooks->end_source_file) + (gfc_linebuf_linenum (gfc_current_locus.lb->next)); gfc_current_locus.lb->next->dbg_emitted = true; } else if (gfc_current_locus.lb->next->file != gfc_current_locus.lb->file && !gfc_current_locus.lb->next->dbg_emitted) { /* We enter into a new file. */ - start_source_file (gfc_linebuf_linenum (gfc_current_locus.lb), - gfc_current_locus.lb->next->file); + (*debug_hooks->start_source_file) + (gfc_linebuf_linenum (gfc_current_locus.lb), + gfc_current_locus.lb->next->file->filename); gfc_current_locus.lb->next->dbg_emitted = true; } } -- 2.7.4