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

Reply via email to