Fix the handling of inlined frames in DWARF debug info.
authorMillan Wolff <mail@milianw.de>
Wed, 3 Oct 2018 11:06:09 +0000 (12:06 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 3 Oct 2018 11:06:09 +0000 (12:06 +0100)
PR 23715
* dwarf2.c (find_abstract_instance): Allow recursive invocations
of find_abstract_instance to override the name variable.

bfd/ChangeLog
bfd/dwarf2.c
bfd/section.c

index 2d96579a1d871ad7cec7900be04be644658111b3..122983cb18b7a152a25695be0cb80bdfca3842aa 100644 (file)
@@ -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.
index 77a7368dc03fc71c2303af485b5decb139ecb0bb..3a786fb839f5beb3cf01ab2ef141224e718904ab 100644 (file)
@@ -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;
index 7ee3f6915b6fb8ea67dcdc4a7187e4ad9532f6a9..cc2392281420a6b976d08bab43dbffee3e35ab58 100644 (file)
@@ -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>>.