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:
parent
cbda583ada
commit
2a8ae7146c
@ -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>
|
||||
|
||||
PR demangler/82195
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Makefile for the libiberty library.
|
||||
# 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.
|
||||
# Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Like sprintf but provides a pointer to malloc'd storage, which must
|
||||
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.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
software; you can redistribute it and/or modify it under the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -5,7 +5,7 @@
|
||||
@center Version 2.1, February 1999
|
||||
|
||||
@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
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
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_name (struct d_info *, int);
|
||||
static struct demangle_component *d_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_local_name (struct d_info *, int);
|
||||
static struct demangle_component *d_local_name (struct d_info *);
|
||||
|
||||
static int d_discriminator (struct d_info *);
|
||||
|
||||
@ -1259,6 +1259,8 @@ has_return_type (struct demangle_component *dc)
|
||||
{
|
||||
default:
|
||||
return 0;
|
||||
case DEMANGLE_COMPONENT_LOCAL_NAME:
|
||||
return has_return_type (d_right (dc));
|
||||
case DEMANGLE_COMPONENT_TEMPLATE:
|
||||
return ! is_ctor_dtor_or_conversion (d_left (dc));
|
||||
FNQUAL_COMPONENT_CASE:
|
||||
@ -1301,25 +1303,22 @@ static struct demangle_component *
|
||||
d_encoding (struct d_info *di, int top_level)
|
||||
{
|
||||
char peek = d_peek_char (di);
|
||||
struct demangle_component *dc;
|
||||
|
||||
if (peek == 'G' || peek == 'T')
|
||||
return d_special_name (di);
|
||||
dc = d_special_name (di);
|
||||
else
|
||||
{
|
||||
struct demangle_component *dc, *dcr;
|
||||
dc = d_name (di);
|
||||
|
||||
dc = d_name (di, top_level);
|
||||
|
||||
if (dc != NULL && top_level && (di->options & DMGL_PARAMS) == 0)
|
||||
if (!dc)
|
||||
/* Failed already. */;
|
||||
else if (top_level && (di->options & DMGL_PARAMS) == 0)
|
||||
{
|
||||
/* Strip off any initial CV-qualifiers, as they really apply
|
||||
to the `this' parameter, and they were not output by the
|
||||
v2 demangler without DMGL_PARAMS. */
|
||||
while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
|
||||
|| 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)
|
||||
while (is_fnqual_component_type (dc->type))
|
||||
dc = d_left (dc);
|
||||
|
||||
/* 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
|
||||
which is local to a function. */
|
||||
if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
|
||||
while (is_fnqual_component_type (d_right (dc)->type))
|
||||
d_right (dc) = d_left (d_right (dc));
|
||||
}
|
||||
else
|
||||
{
|
||||
dcr = d_right (dc);
|
||||
while (is_fnqual_component_type (dcr->type))
|
||||
dcr = d_left (dcr);
|
||||
dc->u.s_binary.right = dcr;
|
||||
}
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
peek = d_peek_char (di);
|
||||
if (dc == NULL || peek == '\0' || peek == 'E')
|
||||
return dc;
|
||||
dcr = d_bare_function_type (di, has_return_type (dc));
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc, dcr);
|
||||
if (peek != '\0' && peek != 'E')
|
||||
{
|
||||
struct demangle_component *ftype;
|
||||
|
||||
ftype = d_bare_function_type (di, has_return_type (dc));
|
||||
if (ftype)
|
||||
{
|
||||
/* If this is a non-top-level local-name, clear the
|
||||
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> */
|
||||
@ -1383,7 +1397,7 @@ d_abi_tags (struct d_info *di, struct demangle_component *dc)
|
||||
*/
|
||||
|
||||
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);
|
||||
struct demangle_component *dc;
|
||||
@ -1394,7 +1408,7 @@ d_name (struct d_info *di, int top_level)
|
||||
return d_nested_name (di);
|
||||
|
||||
case 'Z':
|
||||
return d_local_name (di, top_level);
|
||||
return d_local_name (di);
|
||||
|
||||
case 'U':
|
||||
return d_unqualified_name (di);
|
||||
@ -2079,11 +2093,11 @@ d_special_name (struct d_info *di)
|
||||
|
||||
case 'H':
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_TLS_INIT,
|
||||
d_name (di, 0), NULL);
|
||||
d_name (di), NULL);
|
||||
|
||||
case 'W':
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_TLS_WRAPPER,
|
||||
d_name (di, 0), NULL);
|
||||
d_name (di), NULL);
|
||||
|
||||
default:
|
||||
return NULL;
|
||||
@ -2095,11 +2109,11 @@ d_special_name (struct d_info *di)
|
||||
{
|
||||
case 'V':
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_GUARD,
|
||||
d_name (di, 0), NULL);
|
||||
d_name (di), NULL);
|
||||
|
||||
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,
|
||||
d_number_component (di));
|
||||
}
|
||||
@ -2935,7 +2949,7 @@ d_bare_function_type (struct d_info *di, int has_return_type)
|
||||
static struct demangle_component *
|
||||
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>
|
||||
@ -3380,13 +3394,10 @@ d_expression_1 (struct d_info *di)
|
||||
|
||||
if (suffix)
|
||||
/* Indicate the suffix variant for d_print_comp. */
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
|
||||
d_make_comp (di,
|
||||
DEMANGLE_COMPONENT_BINARY_ARGS,
|
||||
operand, operand));
|
||||
else
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
|
||||
operand);
|
||||
operand = d_make_comp (di, DEMANGLE_COMPONENT_BINARY_ARGS,
|
||||
operand, operand);
|
||||
|
||||
return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op, operand);
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
@ -3568,7 +3579,7 @@ d_expr_primary (struct d_info *di)
|
||||
*/
|
||||
|
||||
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 *name;
|
||||
@ -3577,6 +3588,8 @@ d_local_name (struct d_info *di, int top_level)
|
||||
return NULL;
|
||||
|
||||
function = d_encoding (di, 0);
|
||||
if (!function)
|
||||
return NULL;
|
||||
|
||||
if (! d_check_char (di, 'E'))
|
||||
return NULL;
|
||||
@ -3601,7 +3614,7 @@ d_local_name (struct d_info *di, int top_level)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
name = d_name (di, 0);
|
||||
name = d_name (di);
|
||||
|
||||
if (name
|
||||
/* 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_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. */
|
||||
if (! d_discriminator (di))
|
||||
return NULL;
|
||||
@ -3630,6 +3631,13 @@ d_local_name (struct d_info *di, int top_level)
|
||||
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);
|
||||
}
|
||||
|
||||
@ -4710,32 +4718,21 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
|
||||
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
|
||||
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. */
|
||||
if (typed_name->type == DEMANGLE_COMPONENT_LOCAL_NAME)
|
||||
{
|
||||
struct demangle_component *local_name;
|
||||
|
||||
local_name = d_right (typed_name);
|
||||
if (local_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
|
||||
local_name = local_name->u.s_unary_num.sub;
|
||||
if (local_name == NULL)
|
||||
typed_name = d_right (typed_name);
|
||||
if (typed_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
|
||||
typed_name = typed_name->u.s_unary_num.sub;
|
||||
if (typed_name == NULL)
|
||||
{
|
||||
d_print_error (dpi);
|
||||
return;
|
||||
}
|
||||
while (is_fnqual_component_type (local_name->type))
|
||||
while (is_fnqual_component_type (typed_name->type))
|
||||
{
|
||||
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];
|
||||
dpi->modifiers = &adpm[i];
|
||||
|
||||
adpm[i - 1].mod = local_name;
|
||||
adpm[i - 1].mod = typed_name;
|
||||
adpm[i - 1].printed = 0;
|
||||
adpm[i - 1].templates = dpi->templates;
|
||||
++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));
|
||||
|
||||
if (typed_name->type == DEMANGLE_COMPONENT_TEMPLATE)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library, which is part of GCC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library, which is part of GCC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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)
|
||||
Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling
|
||||
Modified by Satish Pai (pai@apollo.hp.com) for HP demangling
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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)
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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).
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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).
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
|
@ -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
|
||||
Library (glibc).
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/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.
|
||||
# Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -3,7 +3,7 @@
|
||||
"Keep this file name-space clean" means, talk to drepper@gnu.org
|
||||
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
|
||||
Library (glibc).
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
Library (glibc).
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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).
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Libiberty basename. Like basename, but is not overridden by the
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -24,7 +24,7 @@
|
||||
@ifinfo
|
||||
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
|
||||
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
|
||||
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
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Libiberty realpath. Like realpath, but more consistent behavior.
|
||||
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.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/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.
|
||||
# Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
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
|
||||
Library (glibc).
|
||||
|
@ -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 program is free software; you can redistribute it and/or modify
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
with other subprocesses), and wait for it. Generic Unix version
|
||||
(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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Utilities to execute a program in a subprocess (possibly linked by pipes
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -3,7 +3,7 @@
|
||||
(Implements POSIX draft P1003.2/D11.2, except for some of the
|
||||
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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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).
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* <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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* sha1.c - Functions to compute SHA1 message digest of files or
|
||||
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
|
||||
under the terms of the GNU General Public License as published by the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
@ -196,6 +196,7 @@ typedef struct {
|
||||
|
||||
/* Values for sh_flags field. */
|
||||
|
||||
#define SHF_EXECINSTR 0x00000004 /* Executable section. */
|
||||
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude this
|
||||
section from executable and
|
||||
shared library that it builds
|
||||
@ -235,8 +236,10 @@ typedef struct
|
||||
|
||||
#define STB_LOCAL 0 /* Local 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_HIDDEN 2 /* Can only be seen inside currect component */
|
||||
|
||||
/* Functions to fetch and store different ELF types, depending on the
|
||||
endianness and size. */
|
||||
@ -1085,8 +1088,10 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
|
||||
off_t shstroff;
|
||||
unsigned char *names;
|
||||
unsigned int i;
|
||||
int changed;
|
||||
int *pfnret;
|
||||
const char **pfnname;
|
||||
unsigned first_shndx = 0;
|
||||
|
||||
shdr_size = (ei_class == ELFCLASS32
|
||||
? sizeof (Elf32_External_Shdr)
|
||||
@ -1154,11 +1159,13 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
|
||||
ret = (*pfn) (&name);
|
||||
pfnret[i - 1] = ret == 1 ? 0 : -1;
|
||||
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
|
||||
sections. */
|
||||
int changed;
|
||||
do
|
||||
{
|
||||
changed = 0;
|
||||
@ -1324,6 +1331,15 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
|
||||
sobj->offset + stroff,
|
||||
(unsigned char *)strings,
|
||||
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)
|
||||
{
|
||||
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
|
||||
LTO plugin invocation. */
|
||||
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;
|
||||
/* We also need to remove symbols refering to sections
|
||||
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
|
||||
in case it is local. */
|
||||
if (ELF_ST_BIND (*st_info) == STB_LOCAL)
|
||||
int bind = ELF_ST_BIND (*st_info);
|
||||
int other = STV_DEFAULT;
|
||||
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,
|
||||
ent, st_value, Elf_Addr, 0);
|
||||
ELF_SET_FIELD (type_functions, ei_class, Sym,
|
||||
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);
|
||||
@ -1398,12 +1429,23 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
|
||||
link. */
|
||||
ELF_SET_FIELD (type_functions, ei_class, Shdr,
|
||||
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,
|
||||
shdr, sh_flags, Elf_Addr);
|
||||
if (ret == 0)
|
||||
{
|
||||
/* 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)
|
||||
flags = SHF_EXCLUDE;
|
||||
ELF_SET_FIELD (type_functions, ei_class, Shdr,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library. This library is free
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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).
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
software; you can redistribute it and/or modify it under the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
software; you can redistribute it and/or modify it under the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# 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.
|
||||
# Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -3817,14 +3817,14 @@ C::f<int>
|
||||
# Another case where we got member function qualifiers wrong.
|
||||
--format=gnu-v3 --no-params
|
||||
_ZZ3BBdI3FooEvvENK3Fob3FabEv
|
||||
void BBd<Foo>()::Fob::Fab() const
|
||||
void BBd<Foo>()::Fob::Fab
|
||||
BBd<Foo>()::Fob::Fab() const
|
||||
BBd<Foo>()::Fob::Fab
|
||||
#
|
||||
# The same idea one level deeper.
|
||||
--format=gnu-v3 --no-params
|
||||
_ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv
|
||||
void BBd<Foo>()::Fob::Fab() const::Gob::Gab() const
|
||||
void BBd<Foo>()::Fob::Fab() const::Gob::Gab
|
||||
BBd<Foo>()::Fob::Fab() const::Gob::Gab() const
|
||||
BBd<Foo>()::Fob::Fab() const::Gob::Gab
|
||||
#
|
||||
# Yet another member function qualifier problem.
|
||||
--format=gnu-v3 --no-params
|
||||
@ -4445,7 +4445,7 @@ void f<int>()
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c3
|
||||
--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
|
||||
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
|
||||
_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
|
||||
--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_
|
||||
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
|
||||
--format=gnu-v3
|
||||
_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
|
||||
# aka https://sourceware.org/bugzilla/show_bug.cgi?id=16593
|
||||
--format=gnu-v3
|
||||
_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
|
||||
--format=gnu-v3
|
||||
_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
|
||||
--format=gnu-v3
|
||||
_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
|
||||
--format=gnu-v3
|
||||
_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
|
||||
_Z3xxxDFyuVb
|
||||
@ -4525,7 +4525,7 @@ void function_temp<int>(A<sizeof ((int)(999))>)
|
||||
#
|
||||
--format=gnu-v3
|
||||
_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.
|
||||
--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}&)
|
||||
|
||||
_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
|
||||
_ZZ3foovE8localVar_9
|
||||
@ -4739,14 +4739,28 @@ __thunk_4294967297__$_1x
|
||||
# demangler/82195 members of lambdas
|
||||
--no-params
|
||||
_ZZZ3FoovENKUlT_E_clIiEEfS_EN5Local2fnEv
|
||||
Foo()::float {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()
|
||||
Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::Local::fn
|
||||
--no-params
|
||||
_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}&&)
|
||||
Capture<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()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
|
||||
--no-params
|
||||
_Z4FrobIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_Evv
|
||||
void Frob<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>()
|
||||
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()::{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
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* 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.
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
|
||||
This file is part of GNU libiberty.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>
|
||||
|
||||
This file is part of the libiberty library, which is part of GCC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of GNU libiberty.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>
|
||||
|
||||
This file is part of the libiberty library, which is part of GCC.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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
|
||||
software; you can redistribute it and/or modify it under the
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Like vsprintf but provides a pointer to malloc'd storage, which must
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Provide a version vfprintf in terms of _doprnt.
|
||||
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"
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Estimate the length of the string generated by a vprintf-like
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Estimate the length of the string generated by a vprintf-like
|
||||
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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library. This library is free
|
||||
|
@ -3,7 +3,7 @@
|
||||
implementations of stdio; newer ones should already have vsprintf.
|
||||
Written by Per Bothner of Cygnus Support.
|
||||
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
|
||||
software; you can redistribute it and/or modify it under the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
Libiberty is free software; you can redistribute it and/or
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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>.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
This file is part of the libiberty library.
|
||||
|
Loading…
x
Reference in New Issue
Block a user