This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/53379] [4.7/4.8 Regression] No backtrace generated for array bounds violation
- From: "anlauf at gmx dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 31 May 2012 19:41:03 +0000
- Subject: [Bug fortran/53379] [4.7/4.8 Regression] No backtrace generated for array bounds violation
- Auto-submitted: auto-generated
- References: <bug-53379-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53379
--- Comment #7 from Harald Anlauf <anlauf at gmx dot de> 2012-05-31 19:41:03 UTC ---
(In reply to comment #2)
> FWIW, if it is decided to change this, one could also consider changing
> runtime_error() and internal_error() in the same way, though one would need to
> audit the usage in libgfortran so that we don't generate a backtrace for a
> "file not found" or similar "benign" error. Or in other words, "error
> termination", as specified in the Fortran standard, should not lead to a
> backtrace. See also the comment in runtime/error.c that talks about this.
The patch in comment #1 changes only runtime_error_at, which appears to
be generated by the front-end only.
BTW: The program
program test
open(unit=10, file="/no/such/file", action='read')
end program test
gives with 4.7 and the patch in comment #1:
At line 2 of file test.f90 (unit = 10, file = '')
Fortran runtime error: File '/no/such/file' does not exist
while 4.6.2 with -fbacktrace produces:
At line 2 of file test.f90 (unit = 10, file = '')
Fortran runtime error: File '/no/such/file' does not exist
Backtrace for this error:
+ function test (0x80485F9)
at line 3 of file test.f90
+ /lib/libc.so.6(__libc_start_main+0xf3) [0xb73be003]
The latter error is generated by a call to runtime_error_at in
the compiled program, while the former error in open must be
generated somewhere in st_open and descendants.
Not relevant here, but note the missing file name in the first
line of the error message.