[PATCH] Ensure start_source_file and end_source_file debug hook calls in gfortran always match (PR debug/33739)

Jakub Jelinek jakub@redhat.com
Thu Dec 6 11:28:00 GMT 2007


On Thu, Dec 06, 2007 at 11:54:43AM +0100, Richard Guenther wrote:
> On Dec 5, 2007 4:48 PM, Tobias Burnus <burnus@net-b.de> wrote:
> > Jakub Jelinek wrote:
> > > Regtested on x86_64-linux, plus visual inspection of -gstabs -m32 output on
> > > several testcases as well (to make sure the BINCL/EINCL stabs lines match).
> > >
> > > Ok for trunk?
> > >
> > OK and thanks for the fix.
> 
> I think this broke both aermod and rnflow from polyhedron:
> 
> ./f951 -quiet -O0 /space/rguenther/tramp3d/pb05/lin/source/rnflow.f90
> /space/rguenther/tramp3d/pb05/lin/source/rnflow.f90:940: internal
> compiler error: in change_file, at fortran/scanner.c:322
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.

Oops, I can reproduce it with even
subroutine a
include 'T.inc'
end subroutine a
subroutine b
include 'T.inc'
end subroutine b

and T.inc containing:
integer :: i

The down/sibling/up links aren't able to accurately describe the sequence
of enter file/leave file events.

But, I wonder if we can't just call the start/end file hooks right away
during reading of the files after moving gfc_define_undef_line handling
into the load_file loop.  We aren't calling any debug hooks during
parsing other than these start_source_file/end_source_file/define/undef
anyway, all other debug hooks are only called when we jump into trans_*
code.

	Jakub



More information about the Gcc-patches mailing list