[binutils-gdb] Fix the handling of inlined frames in DWARF debug info.

Nick Clifton nickc@sourceware.org
Wed Oct 3 11:07:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c8d3f93237d77f76d14e09e44bc770ce9428b0e4

commit c8d3f93237d77f76d14e09e44bc770ce9428b0e4
Author: Millan Wolff <mail@milianw.de>
Date:   Wed Oct 3 12:06:09 2018 +0100

    Fix the handling of inlined frames in DWARF debug info.
    
    	PR 23715
    	* dwarf2.c (find_abstract_instance): Allow recursive invocations
    	of find_abstract_instance to override the name variable.

Diff:
---
 bfd/ChangeLog |  6 ++++++
 bfd/dwarf2.c  |  2 +-
 bfd/section.c | 14 +++++++++-----
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2d96579..122983c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2018-10-03  Millan Wolff  <mail@milianw.de>
+
+	PR 23715
+	* dwarf2.c (find_abstract_instance): Allow recursive invocations
+	of find_abstract_instance to override the name variable.
+
 2018-10-03  Nick Clifton  <nickc@redhat.com>
 
 	* po/pt.po: Updated Portuguese translation.
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 77a7368..3a786fb 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -2962,7 +2962,7 @@ find_abstract_instance (struct comp_unit *   unit,
 		  break;
 		case DW_AT_specification:
 		  if (!find_abstract_instance (unit, info_ptr, &attr,
-					       pname, is_linkage,
+					       &name, is_linkage,
 					       filename_ptr, linenumber_ptr))
 		    return FALSE;
 		  break;
diff --git a/bfd/section.c b/bfd/section.c
index 7ee3f69..cc23922 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -1457,16 +1457,20 @@ SYNOPSIS
 
 DESCRIPTION
 	Sets the contents of the section @var{section} in BFD
-	@var{abfd} to the data starting in memory at @var{data}. The
-	data is written to the output section starting at offset
+	@var{abfd} to the data starting in memory at @var{location}.
+	The data is written to the output section starting at offset
 	@var{offset} for @var{count} octets.
 
-	Normally <<TRUE>> is returned, else <<FALSE>>. Possible error
-	returns are:
+	Normally <<TRUE>> is returned, but <<FALSE>> is returned if
+	there was an error.  Possible error returns are:
 	o <<bfd_error_no_contents>> -
 	The output section does not have the <<SEC_HAS_CONTENTS>>
 	attribute, so nothing can be written to it.
-	o and some more too
+	o <<bfd_error_bad_value>> -
+	The section is unable to contain all of the data.
+	o <<bfd_error_invalid_operation>> -
+	The BFD is not writeable.
+	o and some more too.
 
 	This routine is front end to the back end function
 	<<_bfd_set_section_contents>>.



More information about the Binutils-cvs mailing list