Synchronize libiberty sources with FSF GCC mainline version.
authorNick Clifton <nickc@redhat.com>
Tue, 2 Aug 2016 12:26:28 +0000 (13:26 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 2 Aug 2016 12:26:28 +0000 (13:26 +0100)
commitfa3fcee7b8c73070306ec358e730d1dfcac246bf
treef52ef026fe1e65bd36d22c7411006502afd938bd
parenta94d834c9d0108f0bb50ddc311554d1bed320f54
Synchronize libiberty sources with FSF GCC mainline version.

include * libiberty.h (MAX_ALLOCA_SIZE): New macro.

libiberty * make-relative-prefix.c (make_relative_prefix_1): Fall back to
malloc if alloca argument is greater than MAX_ALLOCA_SIZE.

* cp-demangle.c (cplus_demangle_operators): Add f[lrLR].
(d_expression_1): Handle them.
(d_maybe_print_fold_expression): New.
(d_print_comp_inner): Use it.
(d_index_template_argument): Handle negative index.

* cp-demangle.c (cplus_demangle_operators): Add sP and sZ.
(d_print_comp_inner): Handle them.
(d_template_args_1): Split out from d_template_args.
(d_args_length): New.

PR c++/70926
* cplus-dem.c: Handle large values and overflow when demangling
length variables.
(demangle_template_value_parm): Read only until end of mangled string.
(do_hpacc_template_literal): Likewise.
(do_type): Handle overflow when demangling array indices.

* cp-demangle.c (cplus_demangle_print_callback): Avoid zero-length
  VLAs.

PR c++/70498
* cp-demangle.c (d_expression_1): Formatting fix.

* cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference
constant.
(demangle_template_value_parm): Handle tk_rvalue_reference
type kind.
(do_type): Support 'O' type id (rvalue references).

* testsuite/demangle-expected: Add tests.

PR c++/70498
* cp-demangle.c: Parse numbers as integer instead of long to avoid
overflow after sanity checks. Include <limits.h> if available.
(INT_MAX): Define if necessary.
(d_make_template_param): Takes integer argument instead of long.
(d_make_function_param): Likewise.
(d_append_num): Likewise.
(d_identifier): Likewise.
(d_number): Parse as and return integer.
(d_compact_number): Handle overflow.
(d_source_name): Change variable type to integer for parsed number.
(d_java_resource): Likewise.
(d_special_name): Likewise.
(d_discriminator): Likewise.
(d_unnamed_type): Likewise.
* testsuite/demangle-expected: Add regression test cases.

* configure: Remove SH5 support.

PR c++/69687
* cplus-dem.c: Include <limits.h> if available.
(INT_MAX): Define if necessary.
(remember_type, remember_Ktype, register_Btype, string_need):
Abort if we detect cases where we the size of the allocation would
overflow.

PR c++/70492
* cplus-dem.c (gnu_special): Handle case where consume_count returns
-1.

PR c++/67394
PR c++/70481
* cplus-dem.c (squangle_mop_up): Zero bsize/ksize after freeing
btypevec/ktypevec.
* testsuite/demangle-expected: Add coverage tests.
include/ChangeLog
include/libiberty.h
libiberty/ChangeLog
libiberty/configure
libiberty/cp-demangle.c
libiberty/cplus-dem.c
libiberty/make-relative-prefix.c
libiberty/testsuite/demangle-expected
This page took 0.029199 seconds and 4 git commands to generate.