------- Comment #9 from dominiq at lps dot ens dot fr 2007-10-25 20:49 ------- I have done the following changes to gcc/fortran/scanner.c:
--- /opt/gcc/_gcc-clean/gcc/fortran/scanner.c 2007-10-04 17:26:43.000000000 +0200 +++ /opt/gcc/gcc-4.3-work/gcc/fortran/scanner.c 2007-10-25 22:28:09.000000000 +0200 @@ -324,6 +324,7 @@ /* We exit from an included file. */ (*debug_hooks->end_source_file) (gfc_linebuf_linenum (gfc_current_locus.lb->next)); + puts ("exit"); gfc_current_locus.lb->next->dbg_emitted = true; } else if (gfc_current_locus.lb->next->file != gfc_current_locus.lb->file @@ -333,6 +334,7 @@ (*debug_hooks->start_source_file) (gfc_linebuf_linenum (gfc_current_locus.lb), gfc_current_locus.lb->next->file->filename); + puts ("enter"); gfc_current_locus.lb->next->dbg_emitted = true; } } and I get: [karma] f90/bug% gfc -m64 -g /opt/gcc/_gcc-clean/gcc/testsuite/gfortran.dg/literal_character_constant_1_z.F enter ld64 warning: BINCL (/opt/gcc/_gcc-clean/gcc/testsuite/gfortran.dg/literal_character_constant_1.inc) missing EINCL in /var/tmp//cc3eAygx.o i.e., the /* We exit from an included file. */ block is not reached (consistent with the ld64 warning). I also see the line gfc_current_locus.lb = gfc_current_locus.lb->next; does not it mean that "gfc_current_locus.lb->next->dbg_emitted" becomes "gfc_current_locus.lb->dbg_emitted"? Unfortunatelly I do not understand the big scheme behind the particular proc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33739