Sync libiberty with upstream GCC.
authorIain Buclaw <ibuclaw@gdcproject.org>
Sun, 25 Jun 2017 09:39:05 +0000 (11:39 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Sun, 25 Jun 2017 09:39:05 +0000 (11:39 +0200)
commit2d3392bd42e16b5c8894c357f250dbde245e96fe
treed3bc528e7cb996034a43a478c50a509e41c6bad5
parent5cc4ca837deac7dc962d8a3741aa120c50ab41da
Sync libiberty with upstream GCC.

libiberty/ChangeLog:

PR demangler/80513
* cp-demangle.c (d_number): Check for overflow.
* cplus-dem.c (consume_count): Fix overflow check.
(gnu_special): Check for underscore after thunk delta.
* testsuite/demangle-expected: Add tests for overflows and invalid
characters in thunks.

* cp-demangle.c (MAX_RECURSION_COUNT): New constant.
(struct d_print_info): Add recursion field.
(d_print_init): Initialize recursion.
(d_print_comp): Check and update d_print_info recursion depth.

* cp-demangle.c (d_substitution): Return NULL if d_add_substitution
fails.

* cp-demangle.h (struct d_info): Remove did_subs field.
* cp-demangle.c (struct d_info_checkpoint): Likewise.
(d_template_param): Don't update did_subs.
(d_substitution): Likewise.
(d_checkpoint): Don't assign did_subs.
(d_backtrack): Likewise.
(cplus_demangle_init_info): Don't initialize did_subs.
libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/cp-demangle.h
libiberty/cplus-dem.c
libiberty/testsuite/demangle-expected