demangle-expected: Add test case for infinite loop in demangler.
* testsuite/demangle-expected: Add test case for infinite loop in demangler. * cplus-dem.c (demangle_arm_hp_template): Stop trying to demangle if do_type() doesn't make any progress --- prevents an infinite loop. From-SVN: r49875
This commit is contained in:
parent
6d1def5c66
commit
b1c1a22fb2
@ -1,3 +1,11 @@
|
|||||||
|
2002-02-19 Scott Snyder <snyder@fnal.gov>
|
||||||
|
|
||||||
|
* testsuite/demangle-expected: Add test case for infinite loop in
|
||||||
|
demangler.
|
||||||
|
* cplus-dem.c (demangle_arm_hp_template): Stop trying to demangle
|
||||||
|
if do_type() doesn't make any progress --- prevents an infinite
|
||||||
|
loop.
|
||||||
|
|
||||||
2002-02-18 Carlo Wood <carlo@gnu.org>
|
2002-02-18 Carlo Wood <carlo@gnu.org>
|
||||||
|
|
||||||
PR c++/5390
|
PR c++/5390
|
||||||
|
@ -2414,8 +2414,15 @@ demangle_arm_hp_template (work, mangled, n, declp)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Not handling other HP cfront stuff */
|
/* Not handling other HP cfront stuff */
|
||||||
|
{
|
||||||
|
const char* old_args = args;
|
||||||
if (!do_type (work, &args, &arg))
|
if (!do_type (work, &args, &arg))
|
||||||
goto cfront_template_args_done;
|
goto cfront_template_args_done;
|
||||||
|
|
||||||
|
/* Fail if we didn't make any progress: prevent infinite loop. */
|
||||||
|
if (args == old_args)
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
string_appends (declp, &arg);
|
string_appends (declp, &arg);
|
||||||
string_append (declp, ",");
|
string_append (declp, ",");
|
||||||
|
@ -2594,3 +2594,9 @@ _Utf58_0_1__1_2147483647__2147483648
|
|||||||
--format=gnu-v3
|
--format=gnu-v3
|
||||||
St9bad_alloc
|
St9bad_alloc
|
||||||
std::bad_alloc
|
std::bad_alloc
|
||||||
|
#
|
||||||
|
# This caused an infinite loop.
|
||||||
|
# We still don't demangle this correctly, but at least we don't hang.
|
||||||
|
--format=auto
|
||||||
|
__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
|
||||||
|
_Z1ZZ2Z::__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm(iterator)
|
||||||
|
Loading…
Reference in New Issue
Block a user