diff options
author | Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> | 2016-01-06 10:10:39 +0400 |
---|---|---|
committer | Joel Brobecker <brobecker@adacore.com> | 2016-01-17 10:11:02 +0400 |
commit | dc365182240722969f044918ecd3cab00da55502 (patch) | |
tree | cbe0e5c2b7be34375cb74e18cbd1a25fbcc6d776 | |
parent | b677098d4e086c093554a064076e021fec0399e8 (diff) | |
download | gdb-dc365182240722969f044918ecd3cab00da55502.zip gdb-dc365182240722969f044918ecd3cab00da55502.tar.gz gdb-dc365182240722969f044918ecd3cab00da55502.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 3 |
2 files changed, 9 insertions, 1 deletions
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: |