diff options
author | Nick Clifton <nickc@redhat.com> | 2015-09-30 17:55:16 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-09-30 17:55:16 +0100 |
commit | 6899683948c66a81ae470efc0869ea01e489e9cd (patch) | |
tree | 6beabcf2bf206b0b598aaf226e8a51b57474d832 /libiberty | |
parent | 4b627c18440f51077f8fd4c18adaa3919c3a373e (diff) | |
download | binutils-gdb-6899683948c66a81ae470efc0869ea01e489e9cd.tar.gz |
Resync files in the binutils repository that are maintained in the gcc repository.
. 2015-08-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR libfortran/54572
* Makefile.def: Make libgfortran depend on libbacktrace.
* Makefile.in: Regenerate.
2015-08-12 Tom de Vries <tom@codesourcery.com>
PR other/67092
PR other/67098
* configure.ac: Remove --with_host_libstdcxx support.
* configure: Regenerate.
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
* configure.ac (noconfigdirs): Don't add "target-libgomp" for target
nvptx*-*-*.
* configure: Regenerate.
include 2015-08-14 Pierre-Marie de Rodat <derodat@adacore.com>
* dwarf2.def (DW_AT_GNU_bias): New attribute.
2015-08-14 Pierre-Marie de Rodat <derodat@adacore.com>
* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
attributes.
libiberty 2015-08-15 Ian Lance Taylor <iant@google.com>
* cp-demangle.c (d_abi_tags): Preserve di->last_name across any
ABI tags.
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 9 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 8 | ||||
-rw-r--r-- | libiberty/testsuite/demangle-expected | 6 |
3 files changed, 23 insertions, 0 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index f2abfc95f11..5b9a8cf2d9c 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,12 @@ +2015-09-30 Nick Clifton <nickc@redhat.com> + + Import the following patches from the GCC mainline: + + 2015-08-15 Ian Lance Taylor <iant@google.com> + + * cp-demangle.c (d_abi_tags): Preserve di->last_name across any + ABI tags. + 2015-08-11 Iain Buclaw <ibuclaw@gdcproject.org> * d-demangle.c (dlang_parse_real): Remove call to strtod. diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 2988b6bcb01..fb1c4e5e9d5 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -1302,7 +1302,12 @@ d_encoding (struct d_info *di, int top_level) static struct demangle_component * d_abi_tags (struct d_info *di, struct demangle_component *dc) { + struct demangle_component *hold_last_name; char peek; + + /* Preserve the last name, so the ABI tag doesn't clobber it. */ + hold_last_name = di->last_name; + while (peek = d_peek_char (di), peek == 'B') { @@ -1311,6 +1316,9 @@ d_abi_tags (struct d_info *di, struct demangle_component *dc) tag = d_source_name (di); dc = d_make_comp (di, DEMANGLE_COMPONENT_TAGGED_NAME, dc, tag); } + + di->last_name = hold_last_name; + return dc; } diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 6ea64aef859..205fd761d83 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -4359,3 +4359,9 @@ f(std::string[abi:foo], std::string[abi:foo]) --format=gnu-v3 _Z18IndirectExternCallIPU7stdcallU7regparmILi3EEFviiEiEvT_T0_S3_ void IndirectExternCall<void ( regparm<3> stdcall*)(int, int), int>(void ( regparm<3> stdcall*)(int, int), int, void ( regparm<3> stdcall*)(int, int)) +# +# ABI tags used to confuse the constructor name calculation. +--format=gnu-v3 --no-params +_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code +std::ios_base::failure[abi:cxx11]::failure(char const*, std::error_code const&) +std::ios_base::failure[abi:cxx11]::failure |