cplus-dem.c (demangle_template): Register a new Btype only when needed.

* cplus-dem.c (demangle_template): Register a new Btype only
        when needed.
        * testsuite/demangle-expected: Add a new test.

From-SVN: r72729
This commit is contained in:
J. Brobecker 2003-10-20 23:21:30 +00:00 committed by Joel Brobecker
parent 9540958eff
commit 08c5b96d1b
3 changed files with 16 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2003-10-20 J. Brobecker <brobecker@gnat.com>
* cplus-dem.c (demangle_template): Register a new Btype only
when needed.
* testsuite/demangle-expected: Add a new test.
2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/demangle-expected: Update the expected output of

View File

@ -2043,13 +2043,10 @@ demangle_template (work, mangled, tname, trawname, is_type, remember)
const char *start;
int is_java_array = 0;
string temp;
int bindex = 0;
(*mangled)++;
if (is_type)
{
if (remember)
bindex = register_Btype (work);
start = *mangled;
/* get template name */
if (**mangled == 'z')
@ -2226,7 +2223,10 @@ demangle_template (work, mangled, tname, trawname, is_type, remember)
}
if (is_type && remember)
remember_Btype (work, tname->b, LEN_STRING (tname), bindex);
{
const int bindex = register_Btype (work);
remember_Btype (work, tname->b, LEN_STRING (tname), bindex);
}
/*
if (work -> static_type)

View File

@ -2864,3 +2864,9 @@ r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>
--format=auto
__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
__CPR212____ct__Q3_3std141list__tm__128_Q2_3edm41THandle__tm__26_Q2_4emid15EMparticleChunkQ2_3std68allocator__tm__51_Q2_3edmJ37J14const_iteratorFRCQ3_3std18list__tm__7_Z1ZZ2Z8iterator
#
# This used to cause a crash. It doesn't follow the C++ encoding so
# the demangled name should be identical to the original symbol name.
--format=auto
_test_array__L_1__B23b___clean.6
_test_array__L_1__B23b___clean.6