From c793cac124dd2eb34042f2e43abb099a26e34cb0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Mar 2017 17:49:32 +0000 Subject: Sync libiberty sources with GCC. PR demangler/70909 PR demangler/67264 * cp-demangle.c: Fix endless recursion. Pass struct demangle_component as non const. (d_make_empty): Initialize variable. (d_print_comp_inner): Limit recursion. (d_print_comp): Decrement variable. * cp-demint.c (cplus_demangle_fill_component): Initialize variable. (cplus_demangle_fill_builtin_type): Likewise. (cplus_demangle_fill_operator): Likewise. * testsuite/demangle-expected: Add tests. --- libiberty/cp-demint.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libiberty/cp-demint.c') diff --git a/libiberty/cp-demint.c b/libiberty/cp-demint.c index 64baffa..13a71d9 100644 --- a/libiberty/cp-demint.c +++ b/libiberty/cp-demint.c @@ -123,6 +123,7 @@ cplus_demangle_fill_component (struct demangle_component *p, p->type = type; p->u.s_binary.left = left; p->u.s_binary.right = right; + p->d_printing = 0; return 1; } @@ -146,6 +147,7 @@ cplus_demangle_fill_builtin_type (struct demangle_component *p, { p->type = DEMANGLE_COMPONENT_BUILTIN_TYPE; p->u.s_builtin.type = &cplus_demangle_builtin_types[i]; + p->d_printing = 0; return 1; } } @@ -172,6 +174,7 @@ cplus_demangle_fill_operator (struct demangle_component *p, { p->type = DEMANGLE_COMPONENT_OPERATOR; p->u.s_operator.op = &cplus_demangle_operators[i]; + p->d_printing = 0; return 1; } } -- cgit v1.1