------- Comment #8 from dominiq at lps dot ens dot fr  2007-10-25 16:59 -------
I have reverted revision 129011:

+2007-10-04  Francois-Xavier Coudert  <[EMAIL PROTECTED]>
+
+       PR fortran/33502
+       * scanner.c (gfc_advance_line): Call debug_hooks->end_source_file
+       and debug_hooks->start_source_file when appropriate, and set
+       dbg_emitted.
+       (gfc_define_undef_line): New function.
+       (load_file): Don't error out on #define and #undef lines.
+       * parse.c (next_statement): Call gfc_define_undef_line.
+       (gfc_parse_file): Call debug_hooks->start_source_file and
+       debug_hooks->end_source_file for the main source file if
+       required.
+       * gfortran.h (gfc_linebuf): Add dbg_emitted field.
+       (gfc_define_undef_line): New prototype.
+

and the failures disappeared. I do not understand the logic of 

+  if (gfc_current_locus.lb->next
+      && gfc_current_locus.lb->next->file != gfc_current_locus.lb->file)
+    {
+      if (gfc_current_locus.lb->next->file
+         && !gfc_current_locus.lb->next->dbg_emitted
+         && gfc_current_locus.lb->file->up ==
gfc_current_locus.lb->next->file)
+       {
+         /* We exit from an included file. */
+         (*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.  */
+         (*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;
+       }
+    }
+

If I understand it, if gfc_current_locus.lb->next->dbg_emitted is false, it is
set to true for both entering a new file and leaving an included file. With the
current scheme I don't see how the latter case can be reached.


-- 

dominiq at lps dot ens dot fr changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33739

Reply via email to