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