mirror of git://gcc.gnu.org/git/gcc.git
cp-demangle.c (d_encoding): Guard against NULL return values from d_right (dc).
* cp-demangle.c (d_encoding): Guard against NULL return values from d_right (dc). * testsuite/demangle-expected: Add testcase. From-SVN: r270694
This commit is contained in:
parent
5bcc5a3b28
commit
927e42fd52
|
@ -1,3 +1,9 @@
|
||||||
|
2019-04-30 Ben L <bobsayshilol@live.co.uk>
|
||||||
|
|
||||||
|
* cp-demangle.c (d_encoding): Guard against NULL return values from
|
||||||
|
d_right (dc).
|
||||||
|
* testsuite/demangle-expected: Add testcase.
|
||||||
|
|
||||||
2019-04-29 Ben L <bobsayshilol@live.co.uk>
|
2019-04-29 Ben L <bobsayshilol@live.co.uk>
|
||||||
|
|
||||||
* cp-demangle.c (d_expression_1): Don't peek ahead unless the current
|
* cp-demangle.c (d_expression_1): Don't peek ahead unless the current
|
||||||
|
|
|
@ -1330,8 +1330,14 @@ d_encoding (struct d_info *di, int top_level)
|
||||||
really apply here; this happens when parsing a class
|
really apply here; this happens when parsing a class
|
||||||
which is local to a function. */
|
which is local to a function. */
|
||||||
if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
|
if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
|
||||||
while (is_fnqual_component_type (d_right (dc)->type))
|
{
|
||||||
d_right (dc) = d_left (d_right (dc));
|
while (d_right (dc) != NULL
|
||||||
|
&& is_fnqual_component_type (d_right (dc)->type))
|
||||||
|
d_right (dc) = d_left (d_right (dc));
|
||||||
|
|
||||||
|
if (d_right (dc) == NULL)
|
||||||
|
dc = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -72,6 +72,11 @@ _Q8ccQ4M2e.
|
||||||
|
|
||||||
_ZmmAtl
|
_ZmmAtl
|
||||||
_ZmmAtl
|
_ZmmAtl
|
||||||
|
# Could crash
|
||||||
|
--no-params
|
||||||
|
_ZZaSFvOEES_
|
||||||
|
_ZZaSFvOEES_
|
||||||
|
_ZZaSFvOEES_
|
||||||
#
|
#
|
||||||
# demangler/80513 Test for bogus characters after __thunk_
|
# demangler/80513 Test for bogus characters after __thunk_
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue