This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] GDB SIGSEGV opening a Fortran program compiled with ifort
- From: Joel Brobecker <brobecke at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 17 Jan 2016 06:11:25 -0000
- Subject: [binutils-gdb] GDB SIGSEGV opening a Fortran program compiled with ifort
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=dc365182240722969f044918ecd3cab00da55502
commit dc365182240722969f044918ecd3cab00da55502
Author: Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
Date: Wed Jan 6 10:10:39 2016 +0400
GDB SIGSEGV opening a Fortran program compiled with ifort
This patch fixes a SIGSEGV when trying to open a Fortran program
compiled with ifort (reproduced using version using version 16.0.1.150).
The error can be reproduce with most, if not any program. For instance,
a single file only containing "end", compiled with no additional flag,
suffices.
gdb/ChangeLog:
PR gdb/19208
* dwarf2read.c (read_partial_die): Do not call set_objfile_main_name
if the function has no name.
Diff:
---
gdb/ChangeLog | 7 +++++++
gdb/dwarf2read.c | 3 ++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fe8fd6c..dbc4b08 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2016-01-17 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> (tiny change)
+
+ Pushed by Joel Brobecker <brobecker@adacore.com>.
+ PR gdb/19208
+ * dwarf2read.c (read_partial_die): Do not call set_objfile_main_name
+ if the function has no name.
+
2016-01-15 Sandra Loosemore <sandra@codesourcery.com>
* charset.c [PHONY_ICONV] (GDB_DEFAULT_HOST_CHARSET):
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index c410500..1020c12 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -15936,7 +15936,8 @@ read_partial_die (const struct die_reader_specs *reader,
compilers pick up the new representation, we'll support this
practice. */
if (DW_UNSND (&attr) == DW_CC_program
- && cu->language == language_fortran)
+ && cu->language == language_fortran
+ && part_die->name != NULL)
set_objfile_main_name (objfile, part_die->name, language_fortran);
break;
case DW_AT_inline: