merge from gcc
This commit is contained in:
parent
ab4f2b471a
commit
d35d0cd43c
|
@ -1,3 +1,14 @@
|
|||
2003-12-15 Ian Lance Taylor <ian@wasabisystems.com>
|
||||
|
||||
* cp-demangle.c (d_print_function_type): Print the function
|
||||
parameters with no modifiers.
|
||||
* testsuite/demangle-expected: Add test case.
|
||||
|
||||
* cp-demangle.c (d_demangle): If DMGL_PARAMS is not set, don't
|
||||
expect that we've read the entire string.
|
||||
(is_ctor_or_dtor): Don't expect that we've read the entire
|
||||
string--reverse patch of 2003-11-29.
|
||||
|
||||
2003-12-15 Brendan Kehoe <brendan@zen.org>
|
||||
|
||||
* libiberty/Makefile.in (floatformat.o): Add dependency on
|
||||
|
|
|
@ -3396,7 +3396,14 @@ d_print_function_type (dpi, dc, mods)
|
|||
d_append_char (dpi, '(');
|
||||
|
||||
if (d_right (dc) != NULL)
|
||||
{
|
||||
struct d_print_mod *hold_modifiers;
|
||||
|
||||
hold_modifiers = dpi->modifiers;
|
||||
dpi->modifiers = NULL;
|
||||
d_print_comp (dpi, d_right (dc));
|
||||
dpi->modifiers = hold_modifiers;
|
||||
}
|
||||
|
||||
d_append_char (dpi, ')');
|
||||
|
||||
|
@ -3622,9 +3629,11 @@ d_demangle (mangled, options, palc)
|
|||
else
|
||||
dc = d_type (&di);
|
||||
|
||||
/* If we didn't consume the entire mangled string, then we didn't
|
||||
successfully demangle it. */
|
||||
if (d_peek_char (&di) != '\0')
|
||||
/* If DMGL_PARAMS is set, then if we didn't consume the entire
|
||||
mangled string, then we didn't successfully demangle it. If
|
||||
DMGL_PARAMS is not set, we didn't look at the trailing
|
||||
parameters. */
|
||||
if (((options & DMGL_PARAMS) != 0) && d_peek_char (&di) != '\0')
|
||||
dc = NULL;
|
||||
|
||||
#ifdef CP_DEMANGLE_DEBUG
|
||||
|
@ -3829,9 +3838,10 @@ is_ctor_or_dtor (mangled, ctor_kind, dtor_kind)
|
|||
|
||||
dc = d_mangled_name (&di, 1);
|
||||
|
||||
/* Note that because we did not pass DMGL_PARAMS, we don't expect to
|
||||
demangle the entire string. */
|
||||
|
||||
ret = 0;
|
||||
if (d_peek_char (&di) == '\0')
|
||||
{
|
||||
while (dc != NULL)
|
||||
{
|
||||
switch (dc->type)
|
||||
|
@ -3861,7 +3871,6 @@ is_ctor_or_dtor (mangled, ctor_kind, dtor_kind)
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
free (di.subs);
|
||||
free (di.comps);
|
||||
|
|
|
@ -2916,6 +2916,11 @@ void f<-1>()
|
|||
_ZNSdD0Ev
|
||||
std::basic_iostream<char, std::char_traits<char> >::~basic_iostream()
|
||||
#
|
||||
# Another case where we got member function qualifiers wrong.
|
||||
--format=gnu-v3
|
||||
_ZNK15nsBaseHashtableI15nsUint32HashKey8nsCOMPtrI4IFooEPS2_E13EnumerateReadEPF15PLDHashOperatorRKjS4_PvES9_
|
||||
nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead(PLDHashOperator (*)(unsigned int const&, IFoo*, void*), void*) const
|
||||
#
|
||||
# This caused an infinite loop.
|
||||
#
|
||||
# This is generated by an EDG compiler (kcc 4.0). To demangle it
|
||||
|
|
Loading…
Reference in New Issue