This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]