From 80024f3180b9c4c904cd65323e1d1333cf19d1fe Mon Sep 17 00:00:00 2001 From: Ben L Date: Tue, 30 Apr 2019 14:22:41 +0000 Subject: cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'. * cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'. * testsuite/demangle-expected: Add testcase. From-SVN: r270695 --- libiberty/cp-demangle.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'libiberty/cp-demangle.c') diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index f8c4c1d..4e5b733 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -4767,12 +4767,8 @@ d_print_comp_inner (struct d_print_info *dpi, int options, 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 (typed_name->type)) + while (typed_name != NULL + && is_fnqual_component_type (typed_name->type)) { if (i >= sizeof adpm / sizeof adpm[0]) { @@ -4791,6 +4787,11 @@ d_print_comp_inner (struct d_print_info *dpi, int options, typed_name = d_left (typed_name); } + if (typed_name == NULL) + { + d_print_error (dpi); + return; + } } /* If typed_name is a template, then it applies to the -- cgit v1.1