Update the libiberty sources with the latest patches found in the master sources.

2017-01-02  Richard Biener  <rguenther@suse.de>

	PR lto/83452
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_section):
	Do not use UNDEF locals for removed symbols but instead just
	define them in the first prevailing section and with no name.
	Use the same gnu_lto_v1 name for all removed globals we promote to
	WEAK UNDEFs so hpux can use a stub to provide this symbol.  Clear
	sh_info and sh_link in removed sections.

2017-10-30  Richard Biener  <rguenther@suse.de>

	PR lto/82757
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Strip two leading _s from the __gnu_lto_* symbols.

2017-10-24  Alan Modra  <amodra@gmail.com>

	PR lto/82687
	PR lto/82575
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Only make __gnu_lto symbols hidden.

2017-10-20  Alan Modra  <amodra@gmail.com>

	PR lto/82575
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Make discarded non-local symbols weak and hidden.

2017-10-18  Jakub Jelinek  <jakub@redhat.com>

	PR lto/82598
	* simple-object.c (handle_lto_debug_sections): Copy over also
	.note.GNU-stack section with unchanged name.
	* simple-object-elf.c (SHF_EXECINSTR): Define.
	(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
	on .note.GNU-stack section.

2017-09-25  Nathan Sidwell  <nathan@acm.org>

	PR demangler/82195
	* cp-demangle.c (d_encoding): Strip return type when name is a
	LOCAL_NAME.
	(d_local_name): Strip return type of enclosing TYPED_NAME.
	* testsuite/demangle-expected: Add and adjust tests.

2017-09-21  Nathan Sidwell  <nathan@acm.org>

	PR demangler/82195
	* cp-demangle.c (d_name): Revert addition of 'toplevel' parm.
	(has_return_type): Recurse for DEMANGLE_COMPONENT_LOCAL_NAME.
	(d_encoding): Revert d_name change.  Use is_fnqual_component_type
	to strip modifiers that do not belong.
	(d_special_name, d_class_enum_type): Revert d_name call change.
	(d_expresion_1): Commonize DEMANGLE_COMPONENT_UNARY building.
	(d_local_name): Revert parsing of a function type.
	(d_print_comp_inner): An inner LOCAL_NAME might contain a
	TEMPLATE.
	* testsuite/demangle-expected: Add & adjust tests
This commit is contained in:
Nick Clifton 2018-01-10 13:57:48 +00:00
parent cbda583ada
commit 2a8ae7146c
94 changed files with 327 additions and 198 deletions

View File

@ -1,3 +1,67 @@
2018-01-03 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
2017-01-02 Richard Biener <rguenther@suse.de>
PR lto/83452
* simple-object-elf.c (simple_object_elf_copy_lto_debug_section):
Do not use UNDEF locals for removed symbols but instead just
define them in the first prevailing section and with no name.
Use the same gnu_lto_v1 name for all removed globals we promote to
WEAK UNDEFs so hpux can use a stub to provide this symbol. Clear
sh_info and sh_link in removed sections.
2017-10-30 Richard Biener <rguenther@suse.de>
PR lto/82757
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Strip two leading _s from the __gnu_lto_* symbols.
2017-10-24 Alan Modra <amodra@gmail.com>
PR lto/82687
PR lto/82575
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Only make __gnu_lto symbols hidden.
2017-10-20 Alan Modra <amodra@gmail.com>
PR lto/82575
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Make discarded non-local symbols weak and hidden.
2017-10-18 Jakub Jelinek <jakub@redhat.com>
PR lto/82598
* simple-object.c (handle_lto_debug_sections): Copy over also
.note.GNU-stack section with unchanged name.
* simple-object-elf.c (SHF_EXECINSTR): Define.
(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
on .note.GNU-stack section.
2017-09-25 Nathan Sidwell <nathan@acm.org>
PR demangler/82195
* cp-demangle.c (d_encoding): Strip return type when name is a
LOCAL_NAME.
(d_local_name): Strip return type of enclosing TYPED_NAME.
* testsuite/demangle-expected: Add and adjust tests.
2017-09-21 Nathan Sidwell <nathan@acm.org>
PR demangler/82195
* cp-demangle.c (d_name): Revert addition of 'toplevel' parm.
(has_return_type): Recurse for DEMANGLE_COMPONENT_LOCAL_NAME.
(d_encoding): Revert d_name change. Use is_fnqual_component_type
to strip modifiers that do not belong.
(d_special_name, d_class_enum_type): Revert d_name call change.
(d_expresion_1): Commonize DEMANGLE_COMPONENT_UNARY building.
(d_local_name): Revert parsing of a function type.
(d_print_comp_inner): An inner LOCAL_NAME might contain a
TEMPLATE.
* testsuite/demangle-expected: Add & adjust tests
2017-09-15 Nathan Sidwell <nathan@acm.org> 2017-09-15 Nathan Sidwell <nathan@acm.org>
PR demangler/82195 PR demangler/82195

View File

@ -1,7 +1,7 @@
# Makefile for the libiberty library. # Makefile for the libiberty library.
# Originally written by K. Richard Pixley <rich@cygnus.com>. # Originally written by K. Richard Pixley <rich@cygnus.com>.
# #
# Copyright (C) 1990-2017 Free Software Foundation, Inc. # Copyright (C) 1990-2018 Free Software Foundation, Inc.
# #
# This file is part of the libiberty library. # This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or # Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Provide a version of _doprnt in terms of fprintf. /* Provide a version of _doprnt in terms of fprintf.
Copyright (C) 1998-2017 Free Software Foundation, Inc. Copyright (C) 1998-2018 Free Software Foundation, Inc.
Contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98 Contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* Create and destroy argument vectors (argv's) /* Create and destroy argument vectors (argv's)
Copyright (C) 1992-2017 Free Software Foundation, Inc. Copyright (C) 1992-2018 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support Written by Fred Fish @ Cygnus Support
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,6 +1,6 @@
/* Like sprintf but provides a pointer to malloc'd storage, which must /* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. be freed by the caller.
Copyright (C) 1997-2017 Free Software Foundation, Inc. Copyright (C) 1997-2018 Free Software Foundation, Inc.
Contributed by Cygnus Solutions. Contributed by Cygnus Solutions.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Utility to pick a temporary filename prefix. /* Utility to pick a temporary filename prefix.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* ANSI-compatible clock function. /* ANSI-compatible clock function.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the software; you can redistribute it and/or modify it under the

View File

@ -1,5 +1,5 @@
/* Concatenate variable number of strings. /* Concatenate variable number of strings.
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support Written by Fred Fish @ Cygnus Support
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -5,7 +5,7 @@
@center Version 2.1, February 1999 @center Version 2.1, February 1999
@display @display
Copyright @copyright{} 1991-2017 Free Software Foundation, Inc. Copyright @copyright{} 1991-2018 Free Software Foundation, Inc.
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies

View File

@ -1,5 +1,5 @@
/* Demangler for g++ V3 ABI. /* Demangler for g++ V3 ABI.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>. Written by Ian Lance Taylor <ian@wasabisystems.com>.
This file is part of the libiberty library, which is part of GCC. This file is part of the libiberty library, which is part of GCC.
@ -425,7 +425,7 @@ is_ctor_dtor_or_conversion (struct demangle_component *);
static struct demangle_component *d_encoding (struct d_info *, int); static struct demangle_component *d_encoding (struct d_info *, int);
static struct demangle_component *d_name (struct d_info *, int); static struct demangle_component *d_name (struct d_info *);
static struct demangle_component *d_nested_name (struct d_info *); static struct demangle_component *d_nested_name (struct d_info *);
@ -484,7 +484,7 @@ static struct demangle_component *d_expression (struct d_info *);
static struct demangle_component *d_expr_primary (struct d_info *); static struct demangle_component *d_expr_primary (struct d_info *);
static struct demangle_component *d_local_name (struct d_info *, int); static struct demangle_component *d_local_name (struct d_info *);
static int d_discriminator (struct d_info *); static int d_discriminator (struct d_info *);
@ -1259,6 +1259,8 @@ has_return_type (struct demangle_component *dc)
{ {
default: default:
return 0; return 0;
case DEMANGLE_COMPONENT_LOCAL_NAME:
return has_return_type (d_right (dc));
case DEMANGLE_COMPONENT_TEMPLATE: case DEMANGLE_COMPONENT_TEMPLATE:
return ! is_ctor_dtor_or_conversion (d_left (dc)); return ! is_ctor_dtor_or_conversion (d_left (dc));
FNQUAL_COMPONENT_CASE: FNQUAL_COMPONENT_CASE:
@ -1301,25 +1303,22 @@ static struct demangle_component *
d_encoding (struct d_info *di, int top_level) d_encoding (struct d_info *di, int top_level)
{ {
char peek = d_peek_char (di); char peek = d_peek_char (di);
struct demangle_component *dc;
if (peek == 'G' || peek == 'T') if (peek == 'G' || peek == 'T')
return d_special_name (di); dc = d_special_name (di);
else else
{ {
struct demangle_component *dc, *dcr; dc = d_name (di);
dc = d_name (di, top_level); if (!dc)
/* Failed already. */;
if (dc != NULL && top_level && (di->options & DMGL_PARAMS) == 0) else if (top_level && (di->options & DMGL_PARAMS) == 0)
{ {
/* Strip off any initial CV-qualifiers, as they really apply /* Strip off any initial CV-qualifiers, as they really apply
to the `this' parameter, and they were not output by the to the `this' parameter, and they were not output by the
v2 demangler without DMGL_PARAMS. */ v2 demangler without DMGL_PARAMS. */
while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS while (is_fnqual_component_type (dc->type))
|| dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
|| dc->type == DEMANGLE_COMPONENT_CONST_THIS
|| dc->type == DEMANGLE_COMPONENT_REFERENCE_THIS
|| dc->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS)
dc = d_left (dc); dc = d_left (dc);
/* If the top level is a DEMANGLE_COMPONENT_LOCAL_NAME, then /* If the top level is a DEMANGLE_COMPONENT_LOCAL_NAME, then
@ -1327,22 +1326,37 @@ d_encoding (struct d_info *di, int top_level)
really apply here; this happens when parsing a class really apply here; this happens when parsing a class
which is local to a function. */ which is local to a function. */
if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME) if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
{ while (is_fnqual_component_type (d_right (dc)->type))
dcr = d_right (dc); d_right (dc) = d_left (d_right (dc));
while (is_fnqual_component_type (dcr->type))
dcr = d_left (dcr);
dc->u.s_binary.right = dcr;
}
return dc;
} }
else
{
peek = d_peek_char (di);
if (peek != '\0' && peek != 'E')
{
struct demangle_component *ftype;
peek = d_peek_char (di); ftype = d_bare_function_type (di, has_return_type (dc));
if (dc == NULL || peek == '\0' || peek == 'E') if (ftype)
return dc; {
dcr = d_bare_function_type (di, has_return_type (dc)); /* If this is a non-top-level local-name, clear the
return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc, dcr); return type, so it doesn't confuse the user by
being confused with the return type of whaever
this is nested within. */
if (!top_level && dc->type == DEMANGLE_COMPONENT_LOCAL_NAME
&& ftype->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)
d_left (ftype) = NULL;
dc = d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME,
dc, ftype);
}
else
dc = NULL;
}
}
} }
return dc;
} }
/* <tagged-name> ::= <name> B <source-name> */ /* <tagged-name> ::= <name> B <source-name> */
@ -1383,7 +1397,7 @@ d_abi_tags (struct d_info *di, struct demangle_component *dc)
*/ */
static struct demangle_component * static struct demangle_component *
d_name (struct d_info *di, int top_level) d_name (struct d_info *di)
{ {
char peek = d_peek_char (di); char peek = d_peek_char (di);
struct demangle_component *dc; struct demangle_component *dc;
@ -1394,7 +1408,7 @@ d_name (struct d_info *di, int top_level)
return d_nested_name (di); return d_nested_name (di);
case 'Z': case 'Z':
return d_local_name (di, top_level); return d_local_name (di);
case 'U': case 'U':
return d_unqualified_name (di); return d_unqualified_name (di);
@ -2079,11 +2093,11 @@ d_special_name (struct d_info *di)
case 'H': case 'H':
return d_make_comp (di, DEMANGLE_COMPONENT_TLS_INIT, return d_make_comp (di, DEMANGLE_COMPONENT_TLS_INIT,
d_name (di, 0), NULL); d_name (di), NULL);
case 'W': case 'W':
return d_make_comp (di, DEMANGLE_COMPONENT_TLS_WRAPPER, return d_make_comp (di, DEMANGLE_COMPONENT_TLS_WRAPPER,
d_name (di, 0), NULL); d_name (di), NULL);
default: default:
return NULL; return NULL;
@ -2095,11 +2109,11 @@ d_special_name (struct d_info *di)
{ {
case 'V': case 'V':
return d_make_comp (di, DEMANGLE_COMPONENT_GUARD, return d_make_comp (di, DEMANGLE_COMPONENT_GUARD,
d_name (di, 0), NULL); d_name (di), NULL);
case 'R': case 'R':
{ {
struct demangle_component *name = d_name (di, 0); struct demangle_component *name = d_name (di);
return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, name, return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, name,
d_number_component (di)); d_number_component (di));
} }
@ -2935,7 +2949,7 @@ d_bare_function_type (struct d_info *di, int has_return_type)
static struct demangle_component * static struct demangle_component *
d_class_enum_type (struct d_info *di) d_class_enum_type (struct d_info *di)
{ {
return d_name (di, 0); return d_name (di);
} }
/* <array-type> ::= A <(positive dimension) number> _ <(element) type> /* <array-type> ::= A <(positive dimension) number> _ <(element) type>
@ -3380,13 +3394,10 @@ d_expression_1 (struct d_info *di)
if (suffix) if (suffix)
/* Indicate the suffix variant for d_print_comp. */ /* Indicate the suffix variant for d_print_comp. */
return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op, operand = d_make_comp (di, DEMANGLE_COMPONENT_BINARY_ARGS,
d_make_comp (di, operand, operand);
DEMANGLE_COMPONENT_BINARY_ARGS,
operand, operand)); return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op, operand);
else
return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
operand);
} }
case 2: case 2:
{ {
@ -3568,7 +3579,7 @@ d_expr_primary (struct d_info *di)
*/ */
static struct demangle_component * static struct demangle_component *
d_local_name (struct d_info *di, int top_level) d_local_name (struct d_info *di)
{ {
struct demangle_component *function; struct demangle_component *function;
struct demangle_component *name; struct demangle_component *name;
@ -3577,6 +3588,8 @@ d_local_name (struct d_info *di, int top_level)
return NULL; return NULL;
function = d_encoding (di, 0); function = d_encoding (di, 0);
if (!function)
return NULL;
if (! d_check_char (di, 'E')) if (! d_check_char (di, 'E'))
return NULL; return NULL;
@ -3601,7 +3614,7 @@ d_local_name (struct d_info *di, int top_level)
return NULL; return NULL;
} }
name = d_name (di, 0); name = d_name (di);
if (name if (name
/* Lambdas and unnamed types have internal discriminators /* Lambdas and unnamed types have internal discriminators
@ -3609,18 +3622,6 @@ d_local_name (struct d_info *di, int top_level)
&& name->type != DEMANGLE_COMPONENT_LAMBDA && name->type != DEMANGLE_COMPONENT_LAMBDA
&& name->type != DEMANGLE_COMPONENT_UNNAMED_TYPE) && name->type != DEMANGLE_COMPONENT_UNNAMED_TYPE)
{ {
if (!top_level
&& d_peek_char (di) != 0 /* Not end of string. */
&& d_peek_char (di) != 'E' /* Not end of nested encoding. */
&& d_peek_char (di) != '_') /* Not discriminator. */
{
struct demangle_component *args;
args = d_bare_function_type (di, has_return_type (name));
name = d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME,
name, args);
}
/* Read and ignore an optional discriminator. */ /* Read and ignore an optional discriminator. */
if (! d_discriminator (di)) if (! d_discriminator (di))
return NULL; return NULL;
@ -3630,6 +3631,13 @@ d_local_name (struct d_info *di, int top_level)
name = d_make_default_arg (di, num, name); name = d_make_default_arg (di, num, name);
} }
/* Elide the return type of the containing function so as to not
confuse the user thinking it is the return type of whatever local
function we might be containing. */
if (function->type == DEMANGLE_COMPONENT_TYPED_NAME
&& d_right (function)->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)
d_left (d_right (function)) = NULL;
return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function, name); return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function, name);
} }
@ -4710,32 +4718,21 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
return; return;
} }
/* If typed_name is a template, then it applies to the
function type as well. */
if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)
{
dpt.next = dpi->templates;
dpi->templates = &dpt;
dpt.template_decl = typed_name;
}
/* If typed_name is a DEMANGLE_COMPONENT_LOCAL_NAME, then /* If typed_name is a DEMANGLE_COMPONENT_LOCAL_NAME, then
there may be CV-qualifiers on its right argument which there may be CV-qualifiers on its right argument which
really apply here; this happens when parsing a class which really apply here; this happens when parsing a class that
is local to a function. */ is local to a function. */
if (typed_name->type == DEMANGLE_COMPONENT_LOCAL_NAME) if (typed_name->type == DEMANGLE_COMPONENT_LOCAL_NAME)
{ {
struct demangle_component *local_name; typed_name = d_right (typed_name);
if (typed_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
local_name = d_right (typed_name); typed_name = typed_name->u.s_unary_num.sub;
if (local_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG) if (typed_name == NULL)
local_name = local_name->u.s_unary_num.sub;
if (local_name == NULL)
{ {
d_print_error (dpi); d_print_error (dpi);
return; return;
} }
while (is_fnqual_component_type (local_name->type)) while (is_fnqual_component_type (typed_name->type))
{ {
if (i >= sizeof adpm / sizeof adpm[0]) if (i >= sizeof adpm / sizeof adpm[0])
{ {
@ -4747,15 +4744,24 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
adpm[i].next = &adpm[i - 1]; adpm[i].next = &adpm[i - 1];
dpi->modifiers = &adpm[i]; dpi->modifiers = &adpm[i];
adpm[i - 1].mod = local_name; adpm[i - 1].mod = typed_name;
adpm[i - 1].printed = 0; adpm[i - 1].printed = 0;
adpm[i - 1].templates = dpi->templates; adpm[i - 1].templates = dpi->templates;
++i; ++i;
local_name = d_left (local_name); typed_name = d_left (typed_name);
} }
} }
/* If typed_name is a template, then it applies to the
function type as well. */
if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)
{
dpt.next = dpi->templates;
dpi->templates = &dpt;
dpt.template_decl = typed_name;
}
d_print_comp (dpi, options, d_right (dc)); d_print_comp (dpi, options, d_right (dc));
if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE) if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)

View File

@ -1,5 +1,5 @@
/* Internal demangler interface for g++ V3 ABI. /* Internal demangler interface for g++ V3 ABI.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>. Written by Ian Lance Taylor <ian@wasabisystems.com>.
This file is part of the libiberty library, which is part of GCC. This file is part of the libiberty library, which is part of GCC.

View File

@ -1,5 +1,5 @@
/* Demangler component interface functions. /* Demangler component interface functions.
Copyright (C) 2004-2017 Free Software Foundation, Inc. Copyright (C) 2004-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>. Written by Ian Lance Taylor <ian@wasabisystems.com>.
This file is part of the libiberty library, which is part of GCC. This file is part of the libiberty library, which is part of GCC.

View File

@ -1,5 +1,5 @@
/* Demangler for GNU C++ /* Demangler for GNU C++
Copyright (C) 1989-2017 Free Software Foundation, Inc. Copyright (C) 1989-2018 Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.uucp) Written by James Clark (jjc@jclark.uucp)
Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling
Modified by Satish Pai (pai@apollo.hp.com) for HP demangling Modified by Satish Pai (pai@apollo.hp.com) for HP demangling

View File

@ -1,5 +1,5 @@
/* crc32.c /* crc32.c
Copyright (C) 2009-2017 Free Software Foundation, Inc. Copyright (C) 2009-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Demangler for the D programming language /* Demangler for the D programming language
Copyright (C) 2014-2017 Free Software Foundation, Inc. Copyright (C) 2014-2018 Free Software Foundation, Inc.
Written by Iain Buclaw (ibuclaw@gdcproject.org) Written by Iain Buclaw (ibuclaw@gdcproject.org)
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Names of various DWARF tags. /* Names of various DWARF tags.
Copyright (C) 2012-2017 Free Software Foundation, Inc. Copyright (C) 2012-2018 Free Software Foundation, Inc.
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,5 +1,5 @@
/* An abstract string datatype. /* An abstract string datatype.
Copyright (C) 1998-2017 Free Software Foundation, Inc. Copyright (C) 1998-2018 Free Software Foundation, Inc.
Contributed by Mark Mitchell (mark@markmitchell.com). Contributed by Mark Mitchell (mark@markmitchell.com).
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,5 +1,5 @@
/* Compare two open file descriptors to see if they refer to the same file. /* Compare two open file descriptors to see if they refer to the same file.
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* A Fibonacci heap datatype. /* A Fibonacci heap datatype.
Copyright (C) 1998-2017 Free Software Foundation, Inc. Copyright (C) 1998-2018 Free Software Foundation, Inc.
Contributed by Daniel Berlin (dan@cgsoftware.com). Contributed by Daniel Berlin (dan@cgsoftware.com).
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,6 +1,6 @@
/* File name comparison routine. /* File name comparison routine.
Copyright (C) 2007-2017 Free Software Foundation, Inc. Copyright (C) 2007-2018 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by

View File

@ -1,5 +1,5 @@
/* IEEE floating point support routines, for GDB, the GNU Debugger. /* IEEE floating point support routines, for GDB, the GNU Debugger.
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of GDB. This file is part of GDB.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2017 Free Software Foundation, Inc. /* Copyright (C) 1991-2018 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C NOTE: This source is derived from an old version taken from the GNU C
Library (glibc). Library (glibc).

View File

@ -1,5 +1,5 @@
/* Implement fopen_unlocked and related functions. /* Implement fopen_unlocked and related functions.
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl #!/usr/bin/perl
# -*- perl -*- # -*- perl -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc. # Copyright (C) 2001-2018 Free Software Foundation, Inc.
# #
# This file is part of the libiberty library. # This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or # Libiberty is free software; you can redistribute it and/or

View File

@ -3,7 +3,7 @@
"Keep this file name-space clean" means, talk to drepper@gnu.org "Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it! before changing it!
Copyright (C) 1987-2017 Free Software Foundation, Inc. Copyright (C) 1987-2018 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C NOTE: This source is derived from an old version taken from the GNU C
Library (glibc). Library (glibc).

View File

@ -1,5 +1,5 @@
/* getopt_long and getopt_long_only entry points for GNU getopt. /* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987-2017 Free Software Foundation, Inc. Copyright (C) 1987-2018 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C NOTE: This source is derived from an old version taken from the GNU C
Library (glibc). Library (glibc).

View File

@ -1,5 +1,5 @@
/* Return time used so far, in microseconds. /* Return time used so far, in microseconds.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* An expandable hash tables datatype. /* An expandable hash tables datatype.
Copyright (C) 1999-2017 Free Software Foundation, Inc. Copyright (C) 1999-2018 Free Software Foundation, Inc.
Contributed by Vladimir Makarov (vmakarov@cygnus.com). Contributed by Vladimir Makarov (vmakarov@cygnus.com).
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Hex character manipulation support. /* Hex character manipulation support.
Copyright (C) 1995-2017 Free Software Foundation, Inc. Copyright (C) 1995-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Libiberty basename. Like basename, but is not overridden by the /* Libiberty basename. Like basename, but is not overridden by the
system C library. system C library.
Copyright (C) 2001-2017 Free Software Foundation, Inc. Copyright (C) 2001-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -24,7 +24,7 @@
@ifinfo @ifinfo
This manual describes the GNU @libib library of utility subroutines. This manual describes the GNU @libib library of utility subroutines.
Copyright @copyright{} 2001-2017 Free Software Foundation, Inc. Copyright @copyright{} 2001-2018 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 under the terms of the GNU Free Documentation License, Version 1.3
@ -50,7 +50,7 @@ notice identical to this one except for the removal of this paragraph
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
Copyright @copyright{} 2001-2017 Free Software Foundation, Inc. Copyright @copyright{} 2001-2018 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 under the terms of the GNU Free Documentation License, Version 1.3

View File

@ -1,7 +1,7 @@
/* Libiberty realpath. Like realpath, but more consistent behavior. /* Libiberty realpath. Like realpath, but more consistent behavior.
Based on gdb_realpath from GDB. Based on gdb_realpath from GDB.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl #!/usr/bin/perl
# -*- perl -*- # -*- perl -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc. # Copyright (C) 2001-2018 Free Software Foundation, Inc.
# #
# This file is part of the libiberty library. # This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or # Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Relative (relocatable) prefix support. /* Relative (relocatable) prefix support.
Copyright (C) 1987-2017 Free Software Foundation, Inc. Copyright (C) 1987-2018 Free Software Foundation, Inc.
This file is part of libiberty. This file is part of libiberty.

View File

@ -1,5 +1,5 @@
/* Utility to pick a temporary filename prefix. /* Utility to pick a temporary filename prefix.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* md5.c - Functions to compute MD5 message digest of files or memory blocks /* md5.c - Functions to compute MD5 message digest of files or memory blocks
according to the definition of MD5 in RFC 1321 from April 1992. according to the definition of MD5 in RFC 1321 from April 1992.
Copyright (C) 1995-2017 Free Software Foundation, Inc. Copyright (C) 1995-2018 Free Software Foundation, Inc.
NOTE: This source is derived from an old version taken from the GNU C NOTE: This source is derived from an old version taken from the GNU C
Library (glibc). Library (glibc).

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2017 Free Software Foundation, Inc. /* Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View File

@ -1,5 +1,5 @@
/* Implement the mempcpy function. /* Implement the mempcpy function.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2017 Free Software Foundation, Inc. /* Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is derived from mkstemp.c from the GNU C Library. This file is derived from mkstemp.c from the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* objalloc.c -- routines to allocate memory for objects /* objalloc.c -- routines to allocate memory for objects
Copyright (C) 1997-2017 Free Software Foundation, Inc. Copyright (C) 1997-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Solutions. Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* obstack.c - subroutines used implicitly by object stack macros /* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988-2017 Free Software Foundation, Inc. Copyright (C) 1988-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* List implementation of a partition of consecutive integers. /* List implementation of a partition of consecutive integers.
Copyright (C) 2000-2017 Free Software Foundation, Inc. Copyright (C) 2000-2018 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC. Contributed by CodeSourcery, LLC.
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,5 +1,5 @@
/* Common code for executing a program in a sub-process. /* Common code for executing a program in a sub-process.
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@airs.com>. Written by Ian Lance Taylor <ian@airs.com>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,6 +1,6 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. Shared logic. with other subprocesses), and wait for it. Shared logic.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. DJGPP specialization. with other subprocesses), and wait for it. DJGPP specialization.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. Generic MSDOS specialization. with other subprocesses), and wait for it. Generic MSDOS specialization.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Execute a program and wait for a result. /* Execute a program and wait for a result.
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,7 +1,7 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. Generic Unix version with other subprocesses), and wait for it. Generic Unix version
(also used for UWIN and VMS). (also used for UWIN and VMS).
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. Generic Win32 specialization. with other subprocesses), and wait for it. Generic Win32 specialization.
Copyright (C) 1996-2017 Free Software Foundation, Inc. Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes /* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. with other subprocesses), and wait for it.
Copyright (C) 2004-2017 Free Software Foundation, Inc. Copyright (C) 2004-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Calculate the size of physical memory. /* Calculate the size of physical memory.
Copyright (C) 2000-2017 Free Software Foundation, Inc. Copyright (C) 2000-2018 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2017 Free Software Foundation, Inc. /* Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file based on putenv.c in the GNU C Library. This file based on putenv.c in the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or

View File

@ -3,7 +3,7 @@
(Implements POSIX draft P1003.2/D11.2, except for some of the (Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.) internationalization features.)
Copyright (C) 1993-2017 Free Software Foundation, Inc. Copyright (C) 1993-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Demangler for the Rust programming language /* Demangler for the Rust programming language
Copyright (C) 2016-2017 Free Software Foundation, Inc. Copyright (C) 2016-2018 Free Software Foundation, Inc.
Written by David Tolnay (dtolnay@gmail.com). Written by David Tolnay (dtolnay@gmail.com).
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,6 +1,6 @@
/* <ctype.h> replacement macros. /* <ctype.h> replacement macros.
Copyright (C) 2000-2017 Free Software Foundation, Inc. Copyright (C) 2000-2018 Free Software Foundation, Inc.
Contributed by Zack Weinberg <zackw@stanford.edu>. Contributed by Zack Weinberg <zackw@stanford.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992-2017 Free Software Foundation, Inc. /* Copyright (C) 1992-2018 Free Software Foundation, Inc.
This file based on setenv.c in the GNU C Library. This file based on setenv.c in the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Set the title of a process. /* Set the title of a process.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,7 +1,7 @@
/* sha1.c - Functions to compute SHA1 message digest of files or /* sha1.c - Functions to compute SHA1 message digest of files or
memory blocks according to the NIST specification FIPS-180-1. memory blocks according to the NIST specification FIPS-180-1.
Copyright (C) 2000-2017 Free Software Foundation, Inc. Copyright (C) 2000-2018 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the under the terms of the GNU General Public License as published by the

View File

@ -1,5 +1,5 @@
/* simple-object-coff.c -- routines to manipulate COFF object files. /* simple-object-coff.c -- routines to manipulate COFF object files.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google. Written by Ian Lance Taylor, Google.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* simple-object-common.h -- common structs for object file manipulation. /* simple-object-common.h -- common structs for object file manipulation.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* simple-object-elf.c -- routines to manipulate ELF object files. /* simple-object-elf.c -- routines to manipulate ELF object files.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google. Written by Ian Lance Taylor, Google.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -196,6 +196,7 @@ typedef struct {
/* Values for sh_flags field. */ /* Values for sh_flags field. */
#define SHF_EXECINSTR 0x00000004 /* Executable section. */
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude this #define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude this
section from executable and section from executable and
shared library that it builds shared library that it builds
@ -235,8 +236,10 @@ typedef struct
#define STB_LOCAL 0 /* Local symbol */ #define STB_LOCAL 0 /* Local symbol */
#define STB_GLOBAL 1 /* Global symbol */ #define STB_GLOBAL 1 /* Global symbol */
#define STB_WEAK 2 /* Weak global */
#define STV_DEFAULT 0 /* Visibility is specified by binding type */ #define STV_DEFAULT 0 /* Visibility is specified by binding type */
#define STV_HIDDEN 2 /* Can only be seen inside currect component */
/* Functions to fetch and store different ELF types, depending on the /* Functions to fetch and store different ELF types, depending on the
endianness and size. */ endianness and size. */
@ -1085,8 +1088,10 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
off_t shstroff; off_t shstroff;
unsigned char *names; unsigned char *names;
unsigned int i; unsigned int i;
int changed;
int *pfnret; int *pfnret;
const char **pfnname; const char **pfnname;
unsigned first_shndx = 0;
shdr_size = (ei_class == ELFCLASS32 shdr_size = (ei_class == ELFCLASS32
? sizeof (Elf32_External_Shdr) ? sizeof (Elf32_External_Shdr)
@ -1154,11 +1159,13 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
ret = (*pfn) (&name); ret = (*pfn) (&name);
pfnret[i - 1] = ret == 1 ? 0 : -1; pfnret[i - 1] = ret == 1 ? 0 : -1;
pfnname[i - 1] = name; pfnname[i - 1] = name;
if (first_shndx == 0
&& pfnret[i - 1] == 0)
first_shndx = i;
} }
/* Mark sections as preserved that are required by to be preserved /* Mark sections as preserved that are required by to be preserved
sections. */ sections. */
int changed;
do do
{ {
changed = 0; changed = 0;
@ -1324,6 +1331,15 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
sobj->offset + stroff, sobj->offset + stroff,
(unsigned char *)strings, (unsigned char *)strings,
strsz, &errmsg, err); strsz, &errmsg, err);
/* Find gnu_lto_ in strings. */
char *gnu_lto = strings;
while ((gnu_lto = memchr (gnu_lto, 'g',
strings + strsz - gnu_lto)))
if (strncmp (gnu_lto, "gnu_lto_v1",
strings + strsz - gnu_lto) == 0)
break;
else
gnu_lto++;
for (ent = buf; ent < buf + length; ent += entsize) for (ent = buf; ent < buf + length; ent += entsize)
{ {
unsigned st_shndx = ELF_FETCH_FIELD (type_functions, ei_class, unsigned st_shndx = ELF_FETCH_FIELD (type_functions, ei_class,
@ -1346,9 +1362,6 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
and __gnu_lto_slim which otherwise cause endless and __gnu_lto_slim which otherwise cause endless
LTO plugin invocation. */ LTO plugin invocation. */
if (st_shndx == SHN_COMMON) if (st_shndx == SHN_COMMON)
/* Setting st_name to "" seems to work to purge
COMMON symbols (in addition to setting their
size to zero). */
discard = 1; discard = 1;
/* We also need to remove symbols refering to sections /* We also need to remove symbols refering to sections
we'll eventually remove as with fat LTO objects we'll eventually remove as with fat LTO objects
@ -1364,18 +1377,36 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
{ {
/* Make discarded symbols undefined and unnamed /* Make discarded symbols undefined and unnamed
in case it is local. */ in case it is local. */
if (ELF_ST_BIND (*st_info) == STB_LOCAL) int bind = ELF_ST_BIND (*st_info);
ELF_SET_FIELD (type_functions, ei_class, Sym, int other = STV_DEFAULT;
ent, st_name, Elf_Word, 0); if (bind == STB_LOCAL)
{
/* Make discarded local symbols unnamed and
defined in the first prevailing section. */
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_name, Elf_Word, 0);
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_shndx, Elf_Half, first_shndx);
}
else
{
/* Make discarded global symbols hidden weak
undefined and sharing the gnu_lto_ name. */
bind = STB_WEAK;
other = STV_HIDDEN;
if (gnu_lto)
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_name, Elf_Word,
gnu_lto - strings);
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_shndx, Elf_Half, SHN_UNDEF);
}
*st_other = other;
*st_info = ELF_ST_INFO (bind, STT_NOTYPE);
ELF_SET_FIELD (type_functions, ei_class, Sym, ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_value, Elf_Addr, 0); ent, st_value, Elf_Addr, 0);
ELF_SET_FIELD (type_functions, ei_class, Sym, ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_size, Elf_Word, 0); ent, st_size, Elf_Word, 0);
ELF_SET_FIELD (type_functions, ei_class, Sym,
ent, st_shndx, Elf_Half, SHN_UNDEF);
*st_info = ELF_ST_INFO (ELF_ST_BIND (*st_info),
STT_NOTYPE);
*st_other = STV_DEFAULT;
} }
} }
XDELETEVEC (strings); XDELETEVEC (strings);
@ -1398,12 +1429,23 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
link. */ link. */
ELF_SET_FIELD (type_functions, ei_class, Shdr, ELF_SET_FIELD (type_functions, ei_class, Shdr,
shdr, sh_type, Elf_Word, SHT_NULL); shdr, sh_type, Elf_Word, SHT_NULL);
ELF_SET_FIELD (type_functions, ei_class, Shdr,
shdr, sh_info, Elf_Word, 0);
ELF_SET_FIELD (type_functions, ei_class, Shdr,
shdr, sh_link, Elf_Word, 0);
} }
flags = ELF_FETCH_FIELD (type_functions, ei_class, Shdr, flags = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
shdr, sh_flags, Elf_Addr); shdr, sh_flags, Elf_Addr);
if (ret == 0) if (ret == 0)
flags &= ~SHF_EXCLUDE; {
/* The debugobj doesn't contain any code, thus no trampolines.
Even when the original object needs trampolines, debugobj
doesn't. */
if (strcmp (name, ".note.GNU-stack") == 0)
flags &= ~SHF_EXECINSTR;
flags &= ~SHF_EXCLUDE;
}
else if (ret == -1) else if (ret == -1)
flags = SHF_EXCLUDE; flags = SHF_EXCLUDE;
ELF_SET_FIELD (type_functions, ei_class, Shdr, ELF_SET_FIELD (type_functions, ei_class, Shdr,

View File

@ -1,5 +1,5 @@
/* simple-object-mach-o.c -- routines to manipulate Mach-O object files. /* simple-object-mach-o.c -- routines to manipulate Mach-O object files.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google. Written by Ian Lance Taylor, Google.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* simple-object-coff.c -- routines to manipulate XCOFF object files. /* simple-object-coff.c -- routines to manipulate XCOFF object files.
Copyright (C) 2013-2017 Free Software Foundation, Inc. Copyright (C) 2013-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google and David Edelsohn, IBM. Written by Ian Lance Taylor, Google and David Edelsohn, IBM.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View File

@ -1,5 +1,5 @@
/* simple-object.c -- simple routines to read and write object files. /* simple-object.c -- simple routines to read and write object files.
Copyright (C) 2010-2017 Free Software Foundation, Inc. Copyright (C) 2010-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google. Written by Ian Lance Taylor, Google.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -273,6 +273,9 @@ handle_lto_debug_sections (const char **name)
*name = *name + sizeof (".gnu.lto_") - 1; *name = *name + sizeof (".gnu.lto_") - 1;
return 1; return 1;
} }
/* Copy over .note.GNU-stack section under the same name if present. */
else if (strcmp (*name, ".note.GNU-stack") == 0)
return 1;
return 0; return 0;
} }

View File

@ -1,5 +1,5 @@
/* Implement the snprintf function. /* Implement the snprintf function.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free

View File

@ -1,5 +1,5 @@
/* Sorting algorithms. /* Sorting algorithms.
Copyright (C) 2000-2017 Free Software Foundation, Inc. Copyright (C) 2000-2018 Free Software Foundation, Inc.
Contributed by Mark Mitchell <mark@codesourcery.com>. Contributed by Mark Mitchell <mark@codesourcery.com>.
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,5 +1,5 @@
/* Allocate memory region filled with spaces. /* Allocate memory region filled with spaces.
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* A splay-tree datatype. /* A splay-tree datatype.
Copyright (C) 1998-2017 Free Software Foundation, Inc. Copyright (C) 1998-2018 Free Software Foundation, Inc.
Contributed by Mark Mitchell (mark@markmitchell.com). Contributed by Mark Mitchell (mark@markmitchell.com).
This file is part of GNU CC. This file is part of GNU CC.

View File

@ -1,5 +1,5 @@
/* Increase stack size limit if possible. /* Increase stack size limit if possible.
Copyright (C) 2011-2017 Free Software Foundation, Inc. Copyright (C) 2011-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the software; you can redistribute it and/or modify it under the

View File

@ -1,5 +1,5 @@
/* Implement the stpcpy function. /* Implement the stpcpy function.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Implement the stpncpy function. /* Implement the stpncpy function.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Implement the strndup function. /* Implement the strndup function.
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Implementation of strtod for systems with atof. /* Implementation of strtod for systems with atof.
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the software; you can redistribute it and/or modify it under the

View File

@ -1,5 +1,5 @@
/* Compare strings while treating digits characters numerically. /* Compare strings while treating digits characters numerically.
Copyright (C) 1997-2017 Free Software Foundation, Inc. Copyright (C) 1997-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.

View File

@ -1,6 +1,6 @@
# #
# Makefile # Makefile
# Copyright (C) 1999-2017 Free Software Foundation, Inc. # Copyright (C) 1999-2018 Free Software Foundation, Inc.
# #
# This file is part of the libiberty library. # This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or # Libiberty is free software; you can redistribute it and/or

View File

@ -3817,14 +3817,14 @@ C::f<int>
# Another case where we got member function qualifiers wrong. # Another case where we got member function qualifiers wrong.
--format=gnu-v3 --no-params --format=gnu-v3 --no-params
_ZZ3BBdI3FooEvvENK3Fob3FabEv _ZZ3BBdI3FooEvvENK3Fob3FabEv
void BBd<Foo>()::Fob::Fab() const BBd<Foo>()::Fob::Fab() const
void BBd<Foo>()::Fob::Fab BBd<Foo>()::Fob::Fab
# #
# The same idea one level deeper. # The same idea one level deeper.
--format=gnu-v3 --no-params --format=gnu-v3 --no-params
_ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv _ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv
void BBd<Foo>()::Fob::Fab() const::Gob::Gab() const BBd<Foo>()::Fob::Fab() const::Gob::Gab() const
void BBd<Foo>()::Fob::Fab() const::Gob::Gab BBd<Foo>()::Fob::Fab() const::Gob::Gab
# #
# Yet another member function qualifier problem. # Yet another member function qualifier problem.
--format=gnu-v3 --no-params --format=gnu-v3 --no-params
@ -4445,7 +4445,7 @@ void f<int>()
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c3 # https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c3
--format=gnu-v3 --format=gnu-v3
_ZSt7forwardIRN1x14refobjiteratorINS0_3refINS0_4mime30multipart_section_processorObjIZ15get_body_parserIZZN14mime_processor21make_section_iteratorERKNS2_INS3_10sectionObjENS0_10ptrrefBaseEEEbENKUlvE_clEvEUlSB_bE_ZZNS6_21make_section_iteratorESB_bENKSC_clEvEUlSB_E0_ENS1_INS2_INS0_20outputrefiteratorObjIiEES8_EEEERKSsSB_OT_OT0_EUlmE_NS3_32make_multipart_default_discarderISP_EEEES8_EEEEEOT_RNSt16remove_referenceISW_E4typeE _ZSt7forwardIRN1x14refobjiteratorINS0_3refINS0_4mime30multipart_section_processorObjIZ15get_body_parserIZZN14mime_processor21make_section_iteratorERKNS2_INS3_10sectionObjENS0_10ptrrefBaseEEEbENKUlvE_clEvEUlSB_bE_ZZNS6_21make_section_iteratorESB_bENKSC_clEvEUlSB_E0_ENS1_INS2_INS0_20outputrefiteratorObjIiEES8_EEEERKSsSB_OT_OT0_EUlmE_NS3_32make_multipart_default_discarderISP_EEEES8_EEEEEOT_RNSt16remove_referenceISW_E4typeE
x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<x::refobjiterator<x::ref<x::outputrefiteratorObj<int>, x::ptrrefBase> > get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> >, x::ptrrefBase> >& std::forward<x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<x::refobjiterator<x::ref<x::outputrefiteratorObj<int>, x::ptrrefBase> > get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> >, x::ptrrefBase> >&>(std::remove_reference<x::mime::multipart_section_processorObj<x::refobjiterator<x::ref<x::outputrefiteratorObj<int>, x::ptrrefBase> > get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> > >::type&) x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> >, x::ptrrefBase> >& std::forward<x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> >, x::ptrrefBase> >&>(std::remove_reference<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&> > >::type&)
# #
--format=gnu-v3 --no-params --format=gnu-v3 --no-params
_ZNK7strings8internal8SplitterINS_9delimiter5AnyOfENS_9SkipEmptyEEcvT_ISt6vectorI12basic_stringIcSt11char_traitsIcESaIcEESaISD_EEvEEv _ZNK7strings8internal8SplitterINS_9delimiter5AnyOfENS_9SkipEmptyEEcvT_ISt6vectorI12basic_stringIcSt11char_traitsIcESaIcEESaISD_EEvEEv
@ -4469,28 +4469,28 @@ A::operator C<int><C>
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c16 # https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c16
--format=gnu-v3 --format=gnu-v3
_ZN3mdr16in_cached_threadIRZNK4cudr6GPUSet17parallel_for_eachIZN5tns3d20shape_representation7compute7GPUImpl7executeERKNS_1AINS_7ptr_refIKjEELl3ELl3ENS_8c_strideILl1ELl0EEEEERKNS8_INS9_IjEELl4ELl1ESD_EEEUliRKNS1_7ContextERNS7_5StateEE_JSt6vectorISO_SaISO_EEEEEvOT_DpRT0_EUlSP_E_JSt17reference_wrapperISO_EEEENS_12ScopedFutureIDTclfp_spcl7forwardISW_Efp0_EEEEESV_DpOSW_ _ZN3mdr16in_cached_threadIRZNK4cudr6GPUSet17parallel_for_eachIZN5tns3d20shape_representation7compute7GPUImpl7executeERKNS_1AINS_7ptr_refIKjEELl3ELl3ENS_8c_strideILl1ELl0EEEEERKNS8_INS9_IjEELl4ELl1ESD_EEEUliRKNS1_7ContextERNS7_5StateEE_JSt6vectorISO_SaISO_EEEEEvOT_DpRT0_EUlSP_E_JSt17reference_wrapperISO_EEEENS_12ScopedFutureIDTclfp_spcl7forwardISW_Efp0_EEEEESV_DpOSW_
mdr::ScopedFuture<decltype ({parm#1}(((forward<void cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&>)({parm#2}))...))> mdr::in_cached_thread<void cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(void cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, std::reference_wrapper<tns3d::shape_representation::compute::GPUImpl::State> >(void cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, (void cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&&&)...) mdr::ScopedFuture<decltype ({parm#1}(((forward<cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&>)({parm#2}))...))> mdr::in_cached_thread<cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, std::reference_wrapper<tns3d::shape_representation::compute::GPUImpl::State> >(cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, (cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&&&)...)
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c18 # https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c18
--format=gnu-v3 --format=gnu-v3
_ZNSt9_Any_data9_M_accessIPZN13ThreadManager10futureTaskISt5_BindIFSt7_Mem_fnIM6RunnerFvvEEPS5_EEEEvOT_EUlvE_EERSC_v _ZNSt9_Any_data9_M_accessIPZN13ThreadManager10futureTaskISt5_BindIFSt7_Mem_fnIM6RunnerFvvEEPS5_EEEEvOT_EUlvE_EERSC_v
void ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*& std::_Any_data::_M_access<void ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(void ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*&&)::{lambda()#1}*>() ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*& std::_Any_data::_M_access<ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*&&)::{lambda()#1}*>()
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c24 # https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c24
# aka https://sourceware.org/bugzilla/show_bug.cgi?id=16593 # aka https://sourceware.org/bugzilla/show_bug.cgi?id=16593
--format=gnu-v3 --format=gnu-v3
_ZNSt9_Any_data9_M_accessIPZN3sel8Selector6SetObjI3FooJPKcMS4_FviEEEEvRT_DpT0_EUlvE_EESA_v _ZNSt9_Any_data9_M_accessIPZN3sel8Selector6SetObjI3FooJPKcMS4_FviEEEEvRT_DpT0_EUlvE_EESA_v
void sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*& std::_Any_data::_M_access<void sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(void sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*&, char const*, void (Foo::*)(int))::{lambda()#1}*>() sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*& std::_Any_data::_M_access<sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*&, char const*, void (Foo::*)(int))::{lambda()#1}*>()
# https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c1 # https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c1
--format=gnu-v3 --format=gnu-v3
_ZNSt9_Any_data9_M_accessIPZN13ThreadManager7newTaskIRSt5_BindIFSt7_Mem_fnIM5DiaryFivEEPS5_EEIEEESt6futureINSt9result_ofIFT_DpT0_EE4typeEEOSF_DpOSG_EUlvE_EERSF_v _ZNSt9_Any_data9_M_accessIPZN13ThreadManager7newTaskIRSt5_BindIFSt7_Mem_fnIM5DiaryFivEEPS5_EEIEEESt6futureINSt9result_ofIFT_DpT0_EE4typeEEOSF_DpOSG_EUlvE_EERSF_v
std::future<std::result_of<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>& ()>::type> ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*& std::_Any_data::_M_access<std::future<std::result_of<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>& ()>::type> ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::future<std::result_of<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>& ()>::type> ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*&&)::{lambda()#1}*>() ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*& std::_Any_data::_M_access<ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*&&)::{lambda()#1}*>()
# https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c6 # https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c6
--format=gnu-v3 --format=gnu-v3
_ZNSt9_Any_data9_M_accessIPZN6cereal18polymorphic_detail15getInputBindingINS1_16JSONInputArchiveEEENS1_6detail15InputBindingMapIT_E11SerializersERS7_jEUlPvRSt10unique_ptrIvNS5_12EmptyDeleterIvEEEE0_EESA_v _ZNSt9_Any_data9_M_accessIPZN6cereal18polymorphic_detail15getInputBindingINS1_16JSONInputArchiveEEENS1_6detail15InputBindingMapIT_E11SerializersERS7_jEUlPvRSt10unique_ptrIvNS5_12EmptyDeleterIvEEEE0_EESA_v
cereal::detail::InputBindingMap<cereal::JSONInputArchive>::Serializers cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*& std::_Any_data::_M_access<cereal::detail::InputBindingMap<cereal::JSONInputArchive>::Serializers cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::detail::InputBindingMap<cereal::JSONInputArchive>::Serializers cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*>() cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*& std::_Any_data::_M_access<cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*>()
# https://sourceware.org/bugzilla/show_bug.cgi?id=16845#c2 # https://sourceware.org/bugzilla/show_bug.cgi?id=16845#c2
--format=gnu-v3 --format=gnu-v3
_ZNSt9_Any_data9_M_accessIPZ4postISt8functionIFvvEEEvOT_EUlvE_EERS5_v _ZNSt9_Any_data9_M_accessIPZ4postISt8functionIFvvEEEvOT_EUlvE_EERS5_v
void post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*& std::_Any_data::_M_access<void post<std::function<void ()> >(void post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*&&)::{lambda()#1}*>() post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*& std::_Any_data::_M_access<post<std::function<void ()> >(post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*&&)::{lambda()#1}*>()
# #
--format=auto --no-params --format=auto --no-params
_Z3xxxDFyuVb _Z3xxxDFyuVb
@ -4525,7 +4525,7 @@ void function_temp<int>(A<sizeof ((int)(999))>)
# #
--format=gnu-v3 --format=gnu-v3
_Z7ZipWithI7QStringS0_5QListZN4oral6detail16AdaptCreateTableI7AccountEES0_RKNS3_16CachedFieldsDataEEUlRKS0_SA_E_ET1_IDTclfp1_cvT__EcvT0__EEEERKT1_ISC_ERKT1_ISD_ET2_ _Z7ZipWithI7QStringS0_5QListZN4oral6detail16AdaptCreateTableI7AccountEES0_RKNS3_16CachedFieldsDataEEUlRKS0_SA_E_ET1_IDTclfp1_cvT__EcvT0__EEEERKT1_ISC_ERKT1_ISD_ET2_
QList<decltype ({parm#3}((QString)(), (QString)()))> ZipWith<QString, QString, QList, QString oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}>(QList<QString oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}> const&, QList<QList> const&, QString oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}) QList<decltype ({parm#3}((QString)(), (QString)()))> ZipWith<QString, QString, QList, oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}>(QList<oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}> const&, QList<QList> const&, oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1})
# #
# These three are symbols generated by g++'s testsuite, which triggered the same bug as above. # These three are symbols generated by g++'s testsuite, which triggered the same bug as above.
--format=gnu-v3 --format=gnu-v3
@ -4665,7 +4665,7 @@ _Z3eatIPiZ3FoovEUlPT_PT0_E4_EvRS1_RS3_
void eat<int*, Foo()::{lambda(auto:1*, auto:2*)#6}>(int*&, Foo()::{lambda(auto:1*, auto:2*)#6}&) void eat<int*, Foo()::{lambda(auto:1*, auto:2*)#6}>(int*&, Foo()::{lambda(auto:1*, auto:2*)#6}&)
_Z3eatIPiZ3BarIsEvvEUlPsPT_PT0_E0_EvRS3_RS5_ _Z3eatIPiZ3BarIsEvvEUlPsPT_PT0_E0_EvRS3_RS5_
void eat<int*, void Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}>(int*&, void Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}&) void eat<int*, Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}>(int*&, Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}&)
# PR 77489 # PR 77489
_ZZ3foovE8localVar_9 _ZZ3foovE8localVar_9
@ -4739,14 +4739,28 @@ __thunk_4294967297__$_1x
# demangler/82195 members of lambdas # demangler/82195 members of lambdas
--no-params --no-params
_ZZZ3FoovENKUlT_E_clIiEEfS_EN5Local2fnEv _ZZZ3FoovENKUlT_E_clIiEEfS_EN5Local2fnEv
Foo()::float {lambda(auto:1)#1}::operator()<int>(int) const::Local::fn() Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::Local::fn()
Foo()::float {lambda(auto:1)#1}::operator()<int>(int) const::Local::fn Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::Local::fn
--no-params --no-params
_Z7CaptureIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_EvOS0_ _Z7CaptureIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_EvOS0_
void Capture<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>(Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}&&) void Capture<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>(Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}&&)
Capture<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}> Capture<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
--no-params --no-params
_Z4FrobIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_Evv _Z4FrobIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_Evv
void Frob<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>() void Frob<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>()
Frob<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}> Frob<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
# # A lambda {local-class::member-fn}
--no-params
_ZZ3FoovENKUlT_E_clIiEEfS_
float Foo()::{lambda(auto:1)#1}::operator()<int>(int) const
Foo()::{lambda(auto:1)#1}::operator()<int>
# template-fn {local-class::member-fn}
--no-params
_ZZ3FooIiEfvEN1X2fnEv
Foo<int>()::X::fn()
Foo<int>()::X::fn
# template-fn generic-lambda local-class::member-fn
--no-params
_ZZZ3FooIiEfvENKUlT_E_clIcEEDaS0_EN1X2fnEv
Foo<int>()::{lambda(auto:1)#1}::operator()<char>(char) const::X::fn()
Foo<int>()::{lambda(auto:1)#1}::operator()<char>(char) const::X::fn

View File

@ -1,6 +1,6 @@
/* Demangler fuzzer. /* Demangler fuzzer.
Copyright (C) 2014-2017 Free Software Foundation, Inc. Copyright (C) 2014-2018 Free Software Foundation, Inc.
This file is part of GNU libiberty. This file is part of GNU libiberty.

View File

@ -1,5 +1,5 @@
/* Demangler test program, /* Demangler test program,
Copyright (C) 2002-2017 Free Software Foundation, Inc. Copyright (C) 2002-2018 Free Software Foundation, Inc.
Written by Zack Weinberg <zack@codesourcery.com Written by Zack Weinberg <zack@codesourcery.com
This file is part of GNU libiberty. This file is part of GNU libiberty.

View File

@ -1,5 +1,5 @@
/* expandargv test program, /* expandargv test program,
Copyright (C) 2006-2017 Free Software Foundation, Inc. Copyright (C) 2006-2018 Free Software Foundation, Inc.
Written by Carlos O'Donell <carlos@codesourcery.com> Written by Carlos O'Donell <carlos@codesourcery.com>
This file is part of the libiberty library, which is part of GCC. This file is part of the libiberty library, which is part of GCC.

View File

@ -1,5 +1,5 @@
/* Pexecute test program, /* Pexecute test program,
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@airs.com>. Written by Ian Lance Taylor <ian@airs.com>.
This file is part of GNU libiberty. This file is part of GNU libiberty.

View File

@ -1,5 +1,5 @@
/* Test program for strtol family of funtions, /* Test program for strtol family of funtions,
Copyright (C) 2014-2017 Free Software Foundation, Inc. Copyright (C) 2014-2018 Free Software Foundation, Inc.
Written by Yury Gribov <y.gribov@samsung.com> Written by Yury Gribov <y.gribov@samsung.com>
This file is part of the libiberty library, which is part of GCC. This file is part of the libiberty library, which is part of GCC.

View File

@ -1,5 +1,5 @@
/* Basic struct timeval utilities. /* Basic struct timeval utilities.
Copyright (C) 2011-2017 Free Software Foundation, Inc. Copyright (C) 2011-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* unlink-if-ordinary.c - remove link to a file unless it is special /* unlink-if-ordinary.c - remove link to a file unless it is special
Copyright (C) 2004-2017 Free Software Foundation, Inc. Copyright (C) 2004-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the software; you can redistribute it and/or modify it under the

View File

@ -1,6 +1,6 @@
/* Like vsprintf but provides a pointer to malloc'd storage, which must /* Like vsprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. be freed by the caller.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Provide a version vfprintf in terms of _doprnt. /* Provide a version vfprintf in terms of _doprnt.
By Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98 By Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98
Copyright (C) 1998-2017 Free Software Foundation, Inc. Copyright (C) 1998-2018 Free Software Foundation, Inc.
*/ */
#include "ansidecl.h" #include "ansidecl.h"

View File

@ -1,6 +1,6 @@
/* Estimate the length of the string generated by a vprintf-like /* Estimate the length of the string generated by a vprintf-like
function. Used by vasprintf and xvasprintf. function. Used by vasprintf and xvasprintf.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,6 +1,6 @@
/* Estimate the length of the string generated by a vprintf-like /* Estimate the length of the string generated by a vprintf-like
function. Use by vasprintf and xvasprintf. function. Use by vasprintf and xvasprintf.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Implement the vsnprintf function. /* Implement the vsnprintf function.
Copyright (C) 2003-2017 Free Software Foundation, Inc. Copyright (C) 2003-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free

View File

@ -3,7 +3,7 @@
implementations of stdio; newer ones should already have vsprintf. implementations of stdio; newer ones should already have vsprintf.
Written by Per Bothner of Cygnus Support. Written by Per Bothner of Cygnus Support.
Based on libg++'s "form" (written by Doug Lea; dl@rocky.oswego.edu). Based on libg++'s "form" (written by Doug Lea; dl@rocky.oswego.edu).
Copyright (C) 1991-2017 Free Software Foundation, Inc. Copyright (C) 1991-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the software; you can redistribute it and/or modify it under the

View File

@ -1,5 +1,5 @@
/* Implement the xasprintf function. /* Implement the xasprintf function.
Copyright (C) 2014-2017 Free Software Foundation, Inc. Copyright (C) 2014-2018 Free Software Foundation, Inc.
Contributed by Manuel Lopez-Ibanez. Contributed by Manuel Lopez-Ibanez.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* xexit.c -- Run any exit handlers, then exit. /* xexit.c -- Run any exit handlers, then exit.
Copyright (C) 1994-2017 Free Software Foundation, Inc. Copyright (C) 1994-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* memory allocation routines with error checking. /* memory allocation routines with error checking.
Copyright (C) 1989-2017 Free Software Foundation, Inc. Copyright (C) 1989-2018 Free Software Foundation, Inc.
This file is part of the libiberty library. This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or Libiberty is free software; you can redistribute it and/or

View File

@ -1,5 +1,5 @@
/* Implement the xstrndup function. /* Implement the xstrndup function.
Copyright (C) 2005-2017 Free Software Foundation, Inc. Copyright (C) 2005-2018 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This file is part of the libiberty library.

View File

@ -1,5 +1,5 @@
/* Implement the xvasprintf function. /* Implement the xvasprintf function.
Copyright (C) 2014-2017 Free Software Foundation, Inc. Copyright (C) 2014-2018 Free Software Foundation, Inc.
Contributed by Manuel Lopez-Ibanez. Contributed by Manuel Lopez-Ibanez.
This file is part of the libiberty library. This file is part of the libiberty library.