public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/13447] New: Another demangler problem with method cv-qualifiers
@ 2003-12-19 16:32 drow at gcc dot gnu dot org
  2003-12-19 16:35 ` [Bug c++/13447] " ian at wasabisystems dot com
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: drow at gcc dot gnu dot org @ 2003-12-19 16:32 UTC (permalink / raw)
  To: gcc-bugs

Try demangling this name:
  _ZZN8CryptoPP7NullRNGEvENK7NullRNG13AlgorithmNameEv

The resulting tree looks like:
typed name
  qualified name
    typed name
      qualified name
        name 'CryptoPP'
        name 'NullRNG'
      function type
    const this
      qualified name
        name 'NullRNG'
        name 'AlgorithmName'
  function type

It seems to me that the const this applies to the AlgorithmName, and should be
printed
after its argument list.  Instead it's printed as:
  CryptoPP::NullRNG()::NullRNG::AlgorithmName const()

The old demangler did this too.  This is presumably caused by the 'odd' qualified
name whose leftmost part is a typed name.

-- 
           Summary: Another demangler problem with method cv-qualifiers
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: ian at airs dot com
        ReportedBy: drow at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i386-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
@ 2003-12-19 16:35 ` ian at wasabisystems dot com
  2003-12-19 16:37 ` drow at mvista dot com
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ian at wasabisystems dot com @ 2003-12-19 16:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ian at wasabisystems dot com  2003-12-19 16:10 -------
Subject: Re:  New: Another demangler problem with method cv-qualifiers

"drow at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes:

> Try demangling this name:
>   _ZZN8CryptoPP7NullRNGEvENK7NullRNG13AlgorithmNameEv

I agree that something seems to be wrong.  However, I'm currently
confused by the placement of qualifiers in complex cases, so I'm not
sure how to correctly resolve this.

See
    http://gcc.gnu.org/ml/gcc/2003-12/msg00902.html
I have not received any reply to this question.

I note that my demangler, the old libiberty demangler, and the C++
demangler all produce the same result for this mangled name.

It might help if you provided the C++ source code which generates this
mangled name.

Ian


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
  2003-12-19 16:35 ` [Bug c++/13447] " ian at wasabisystems dot com
@ 2003-12-19 16:37 ` drow at mvista dot com
  2003-12-19 18:41 ` ian at wasabisystems dot com
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: drow at mvista dot com @ 2003-12-19 16:37 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From drow at mvista dot com  2003-12-19 16:25 -------
Subject: Re:  New: Another demangler problem with method cv-qualifiers

On Fri, Dec 19, 2003 at 11:10:25AM -0500, Ian Lance Taylor wrote:
> I agree that something seems to be wrong.  However, I'm currently
> confused by the placement of qualifiers in complex cases, so I'm not
> sure how to correctly resolve this.

I am somewhat confused also.  I've just made my parser recognize types and
variables nested within functions, which is a common demangler output
and nonsensical C++.

> It might help if you provided the C++ source code which generates this
> mangled name.

It came from Michael Chastain's list of mangled names.  Here's another
example which shows the same problem however:

struct Foo { Foo() { } };
template<typename B> void BBd () {
  static Foo foo;
  struct Fob {
    public:
      Fob() { }
      int Fab() const { }
  };
  static Fob fob;
  fob.Fab();
}

template<typename B> class BB {
  public:
    BB() { static Foo foo; BBc (); BBd<B> (); }
    int BBc() { static Foo foo; }
};

BB<Foo> obj;

The item of interest is:
0000002a t void BBd<Foo>()::Fob::Fab const()



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
  2003-12-19 16:35 ` [Bug c++/13447] " ian at wasabisystems dot com
  2003-12-19 16:37 ` drow at mvista dot com
@ 2003-12-19 18:41 ` ian at wasabisystems dot com
  2003-12-19 18:57 ` drow at mvista dot com
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ian at wasabisystems dot com @ 2003-12-19 18:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ian at wasabisystems dot com  2003-12-19 18:28 -------
Subject: Re:  New: Another demangler problem with method cv-qualifiers

Daniel Jacobowitz <drow@mvista.com> writes:

> It came from Michael Chastain's list of mangled names.  Here's another
> example which shows the same problem however:

How do you handle

class C { public: template<typename i> int (*f() const)(); };
int foo(const C c) { return (*c.f<int>())(); }

?

The mangled name is _ZNK1C1fIiEEPFivEv, which currently demangles as

int (*C::f<int>() const)()

That more or less corresponds to the declaration.  However, I don't
know whether this is correct C++.

Ian


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2003-12-19 18:41 ` ian at wasabisystems dot com
@ 2003-12-19 18:57 ` drow at mvista dot com
  2003-12-19 19:18 ` ian at wasabisystems dot com
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: drow at mvista dot com @ 2003-12-19 18:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From drow at mvista dot com  2003-12-19 18:36 -------
Subject: Re:  New: Another demangler problem with method cv-qualifiers

On Fri, Dec 19, 2003 at 01:28:30PM -0500, Ian Lance Taylor wrote:
> The mangled name is _ZNK1C1fIiEEPFivEv, which currently demangles as
> 
> int (*C::f<int>() const)()
> 
> That more or less corresponds to the declaration.  However, I don't
> know whether this is correct C++.

I believe it's correct C++.  At least, it exercises the bits of my
parser most closely based on the standard, and I parse it exactly as
above.  The CONST_THIS gets attached to the function_arglist used for
the method itself, not the return type.

Dan


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2003-12-19 18:57 ` drow at mvista dot com
@ 2003-12-19 19:18 ` ian at wasabisystems dot com
  2003-12-19 19:28 ` giovannibajo at libero dot it
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ian at wasabisystems dot com @ 2003-12-19 19:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ian at wasabisystems dot com  2003-12-19 18:41 -------
Subject: Re:  New: Another demangler problem with method cv-qualifiers

Daniel Jacobowitz <drow@mvista.com> writes:

> On Fri, Dec 19, 2003 at 01:28:30PM -0500, Ian Lance Taylor wrote:
> > The mangled name is _ZNK1C1fIiEEPFivEv, which currently demangles as
> > 
> > int (*C::f<int>() const)()
> > 
> > That more or less corresponds to the declaration.  However, I don't
> > know whether this is correct C++.
> 
> I believe it's correct C++.  At least, it exercises the bits of my
> parser most closely based on the standard, and I parse it exactly as
> above.  The CONST_THIS gets attached to the function_arglist used for
> the method itself, not the return type.

What would it mean to attach to CONST_THIS to the return type?

Specifically, this example does not compile:

class C { public: template<typename i> int (*f())() const; };
int foo(const C c) { return (*c.f<int>())(); }

but this one does:

class C { public: template<typename i> int (*f())() const; };
int foo(C c) { return (*c.f<int>())(); }

The only change is that foo's argument is not const.

The mangled name is _ZN1C1fIiEEPFivEv which demangles to
    int (*C::f<int>())()

What is the meaning of that trailing const on the first line?  What
does it mean to apply a trailing const to a return type?

Ian


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2003-12-19 19:18 ` ian at wasabisystems dot com
@ 2003-12-19 19:28 ` giovannibajo at libero dot it
  2003-12-19 19:29 ` drow at mvista dot com
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: giovannibajo at libero dot it @ 2003-12-19 19:28 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2003-12-19 18:50 -------
Your code is:

class C { 
public: 
  template <typename i> 
  int (*f())() const; 
};

I'm very positive that this is ill-formed. If you want to say that it's a 
pointer to a const function, you should say:

int (*f() const)();

If you want to say that the return type is const (which is of course 
meaningless), you should say:

const int (*f())();


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2003-12-19 19:28 ` giovannibajo at libero dot it
@ 2003-12-19 19:29 ` drow at mvista dot com
  2003-12-19 21:45 ` cvs-commit at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: drow at mvista dot com @ 2003-12-19 19:29 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From drow at mvista dot com  2003-12-19 19:18 -------
Subject: Re:  Another demangler problem with method cv-qualifiers

On Fri, Dec 19, 2003 at 06:41:19PM -0000, ian at wasabisystems dot com wrote:
> What would it mean to attach to CONST_THIS to the return type?

As you said, not much.  A bad choice of words on my part.

Dan


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2003-12-19 19:29 ` drow at mvista dot com
@ 2003-12-19 21:45 ` cvs-commit at gcc dot gnu dot org
  2003-12-20  0:32 ` ian at airs dot com
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2003-12-19 21:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2003-12-19 21:14 -------
Subject: Bug 13447

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	ian@gcc.gnu.org	2003-12-19 21:14:35

Modified files:
	libiberty      : ChangeLog cp-demangle.c 
	libiberty/testsuite: demangle-expected 

Log message:
	Fix for PR c++/13447:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
	(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
	(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
	D_COMP_QUAL_NAME.
	(is_ctor_or_dtor): Likewise.
	(d_local_name): Use D_COMP_LOCAL_NAME rather than
	D_COMP_QUAL_NAME.
	(d_print_comp) [D_COMP_LOCAL_NAME]: New.
	(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
	D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
	(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
	* testsuite/demangle-expected: Add two test cases.
	
	* cp-demangle.c (d_print_function_type): Clear the global modifier
	list when printing the modifiers, not just when printing the
	function parameters.
	* testsuite/demangle-expected: Add two test cases.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/ChangeLog.diff?cvsroot=gcc&r1=1.487&r2=1.488
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/cp-demangle.c.diff?cvsroot=gcc&r1=1.60&r2=1.61
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/testsuite/demangle-expected.diff?cvsroot=gcc&r1=1.24&r2=1.25



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2003-12-19 21:45 ` cvs-commit at gcc dot gnu dot org
@ 2003-12-20  0:32 ` ian at airs dot com
  2003-12-20  1:59 ` dhazeghi at yahoo dot com
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: ian at airs dot com @ 2003-12-20  0:32 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From ian at airs dot com  2003-12-19 21:16 -------
I checked in a patch which fixes this problem.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2003-12-20  0:32 ` ian at airs dot com
@ 2003-12-20  1:59 ` dhazeghi at yahoo dot com
  2004-06-28 22:34 ` cvs-commit at gcc dot gnu dot org
  2004-07-01 10:59 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: dhazeghi at yahoo dot com @ 2003-12-20  1:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dhazeghi at yahoo dot com  2003-12-20 00:45 -------
Please set "target milestone" appropriately when closing bugs. Thanks.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |3.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2003-12-20  1:59 ` dhazeghi at yahoo dot com
@ 2004-06-28 22:34 ` cvs-commit at gcc dot gnu dot org
  2004-07-01 10:59 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-06-28 22:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-06-28 22:34 -------
Subject: Bug 13447

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-rhl-branch
Changes by:	jakub@gcc.gnu.org	2004-06-28 22:33:43

Modified files:
	include        : ChangeLog demangle.h 
	libiberty      : ChangeLog Makefile.in cp-demangle.c 
	libiberty/testsuite: Makefile.in demangle-expected 
	                     test-demangle.c 
	libstdc++-v3   : ChangeLog 
	libstdc++-v3/libsupc++: Makefile.am Makefile.in 
	libstdc++-v3/testsuite: testsuite_hooks.h 
Added files:
	libiberty      : cp-demangle.h cp-demint.c 
	libstdc++-v3/testsuite/demangle/abi_examples: 01.cc 02.cc 03.cc 
	                                              04.cc 05.cc 06.cc 
	                                              07.cc 08.cc 09.cc 
	                                              10.cc 11.cc 12.cc 
	                                              13.cc 14.cc 15.cc 
	                                              16.cc 17.cc 18.cc 
	                                              19.cc 20.cc 21.cc 
	                                              22.cc 23.cc 24.cc 
	                                              25.cc 26.cc 
	libstdc++-v3/testsuite/demangle/abi_text: 01.cc 02.cc 03.cc 
	                                          04.cc 05.cc 06.cc 
	                                          07.cc 08.cc 09.cc 
	                                          10.cc 11.cc 12.cc 
	                                          13.cc 14.cc 
	libstdc++-v3/testsuite/demangle/regression: 3111-1.cc 3111-2.cc 
	                                            7986-01.cc 
	                                            7986-02.cc 
	                                            7986-03.cc 
	                                            7986-04.cc 
	                                            7986-05.cc 
	                                            7986-06.cc 
	                                            7986-07.cc 
	                                            7986-08.cc 
	                                            7986-09.cc 
	                                            7986-10.cc 
	                                            7986-11.cc 
	                                            7986-12.cc 7986.cc 
	                                            8897.cc cw-01.cc 
	                                            cw-02.cc cw-03.cc 
	                                            cw-04.cc cw-05.cc 
	                                            cw-06.cc cw-07.cc 
	                                            cw-08.cc cw-09.cc 
	                                            cw-10.cc cw-11.cc 
	                                            cw-12.cc cw-13.cc 
	                                            cw-14.cc cw-15.cc 
	                                            cw-16.cc old.cc 

Log message:
	libiberty/
	2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED,
	D_PRINT_UNSIGNED_LONG, D_PRINT_LONG_LONG,
	D_PRINT_UNSIGNED_LONG_LONG, D_PRINT_FLOAT.
	* cp-demangle.c (cplus_demangle_builtin_types): Change char and
	short types to D_PRINT_DEFAULT.  Change other integer types to use
	new D_PRINT_* values where appropriate.  Change float types to
	D_PRINT_FLOAT.
	(d_print_comp) [LITERAL, LITERAL_NEG]: Handle new D_PRINT_*
	values.
	* testsuite/demangle-expected: Adjust two test cases.
	
	* cp-demangle.c (d_print_function_type): Print a space before the
	parenthesis around the function type in more cases.
	* testsuite/demangle-expected: Adjust one test case.
	
	* cp-demangle.c (d_print_comp) [UNARY]: Don't emit extra
	parentheses around a cast.
	* testsuite/demangle-expected: Adjust two test cases to match new
	output.
	
	* cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
	
	* cp-demangle.c (d_print_comp) [RESTRICT, VOLATILE, CONST]: Don't
	push more than one of the same CV-qualifier on the top of the
	stack.
	(d_print_comp) [ARRAY_TYPE]: If the array itself is CV-qualified,
	move the CV-qualifiers to apply to the element type instead.
	(d_print_array_type): When checking the modifiers, keep looking
	past ones which have been printed already.
	* testsuite/demangle-expected: Add three test cases.
	
	2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
	empty string correctly.
	
	* cp-demangle.c (__cxa_demangle): It is not an error if status is
	not NULL.  It is an error if the mangled name is the same as a
	built-in type name.
	(main): If IN_GLIBCPP_V3 is defined, test __cxa_demangle rather
	than cplus_demangle_v3.
	
	2004-01-13  Daniel Jacobowitz  <drow@mvista.com>
	
	* cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
	takes two parameters.
	* cp-demint.c (cplus_demangle_fill_component): Likewise.
	
	2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c: Include "cp-demangle.h".  If IN_GLIBCPP_V3 is
	defined, rename some functions which are to become static via
	#define.
	(CP_STATIC_IF_GLIBCPP_V3): Define.
	(struct d_operator_info): Move definition to cp-demangle.h, and
	rename to demangle_operator_info.  Change all uses.
	(enum d_builtin_type_print): Move definition to cp-demangle.h.
	(struct d_builtin_type_info): Move definition to cp-demangle.h,
	and rename to demangle_builtin_type_info.  Change all uses.
	(enum d_comp_type): Move definition to include/demangle.h, and
	rename to demangle_component_type, and change all enums to start
	with DEMANGLE_COMPONENT_ instead of D_.  Change all uses.
	(struct d_comp): Move definition to include/demangle.h, and rename
	to demangle_component.  Change all uses.
	(struct d_info): Move definition to cp-demangle.h.
	(cplus_demangle_fill_name): New function.
	(cplus_demangle_fill_extended_operator): New function.
	(cplus_demangle_fill_ctor): New function.
	(cplus_demangle_fill_dtor): New function.
	(d_make_empty): Remove type parameter.  Change all callers.
	(d_make_name): Use cplus_demangle_fill_name.
	(d_make_extended_operator): Use
	cplus_demangle_fill_extended_operator.
	(d_make_ctor): Use cplus_demangle_fill_ctor.
	(d_make_dtor): Use cplus_demangle_fill_dtor.
	(cplus_demangle_mangled_name): Rename from d_mangled_name.  Make
	non-static by default.  Change all callers.
	(cplus_demangle_operators): Rename from d_operators.  Change all
	uses.  Make non-static by default.  Add sentinel at end of array.
	(d_operator_name): Adjust initialization of high for new sentinel
	in cplus_demangle_operators.
	(cplus_demangle_builtin_types): Rename from d_builtin_types.
	Change all uses.  Make non-static by default.  Change initializer
	to use D_BUILTIN_TYPE_COUNT instead of magic number 26.
	(cplus_demangle_type): Rename from d_type.  Make non-static by
	default.  Change all callers.
	(cplus_demangle_init_info): Rename from d_init_info.  Make
	non-static by default.  Change all callers.
	* cp-demangle.h: New file.
	* cp-demint.c: New file.
	* Makefile.in: Rebuild dependencies.
	(CFILES): Add cp-demint.c.
	(REQUIRED_OFILES): Add cp-demint.o.
	
	2004-01-02  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_encoding): When DMGL_PARAMS is not set, strip
	CV-qualifiers from D_COMP_LOCAL_NAME right subtree.
	* cplus-dem.c (demangle_arm_hp_template): Set DMGL_PARAMS when
	demangling template parameters.
	* testsuite/test-demangle.c (fail): New static function.
	(main): Support new options in input file: --no-params,
	--is-v3-ctor, and --is-v3-dtor.
	* testsuite/demangle-expected: Add --no-params to most tests, and
	add the correct result when parameters are not demangled.  Add
	some simple tests for V3 constructor/destructor recognition.
	
	2003-12-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	
	* cp-demangle.c (is_ctor_or_dtor): Fix error in last change.
	
	2003-12-22  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
	dynamic arrays.
	(struct d_operator_info): Add len field.
	(struct d_builtin_type_info): Add len and java_len fields.
	(struct d_standard_sub_info): Add simple_len, full_len, and
	set_last_name_len fields.
	(struct d_comp): Add len field to s_string.
	(struct d_info): Add send, did_subs, and expansion fields.
	(d_append_string_constant): Define.
	(d_append_string): Remove.  Change all users to use
	d_append_string_constant or d_append_buffer instead.
	(d_make_sub): Add len parameter.  Change all callers.
	(d_name): Increase expansion when substituting std::.
	(d_unqualified_name): Increase expansion for an operator.
	(d_number): Don't use multiplication for negative numbers.
	(d_identifier): Make sure there are enough characters in the
	string for the specified length.  Adjust expansion for an
	anonymous namespace.
	(d_operators): Initialize len field.
	(d_special_name, d_ctor_dtor_name): Increase expansion.
	(d_builtin_types): Initialize len and java_len fields.
	(d_type): Increase expansion for a builtin type.
	(d_cv_qualifiers): Increase expansion for each qualifier.
	(d_bare_function_type): Decrease expansion when removing single
	void parameter.
	(d_template_param): Increment did_subs.
	(d_expression): Increase expansion for an operator.
	(d_expr_primary): Decrease expansion for a type we will print
	specially.
	(standard_subs): Initialize new fields.
	(d_substitution): Increment did_subs when doing a normal
	substitution.  Increase expansion for a special substitution.
	(d_print): Add estimate parameter.  Change all callers.
	(d_print_comp) [D_COMP_NAME]: Handle C++ case inline.
	(d_print_comp) [D_COMP_BINARY]: Use length to avoid strcmp call.
	(d_print_java_identifier): Rename from d_print_identifier.  Handle
	only Java case.  Change caller.
	(d_init_info): Change return type to void.  Change all callers.
	Initialize send, did_subs, and expansion fields.  Do not
	initialize comps and subs fields.
	(d_demangle): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and subs
	arrays on stack.  Make an estimate of the length of the demangled
	name.  Ifdef CP_DEMANGLE_DEBUG, print estimation failures.
	(is_ctor_or_dtor): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and
	subs arrays on stack.
	
	2003-12-20  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
	after the identifier.
	* testsuite/demangle-expected: Add test case.
	
	2003-12-19  Ian Lance Taylor  <ian@wasabisystems.com>
	
	Fix for PR c++/13447:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
	(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
	(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
	D_COMP_QUAL_NAME.
	(is_ctor_or_dtor): Likewise.
	(d_local_name): Use D_COMP_LOCAL_NAME rather than
	D_COMP_QUAL_NAME.
	(d_print_comp) [D_COMP_LOCAL_NAME]: New.
	(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
	D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
	(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
	* testsuite/demangle-expected: Add two test cases.
	
	* cp-demangle.c (d_print_function_type): Clear the global modifier
	list when printing the modifiers, not just when printing the
	function parameters.
	* testsuite/demangle-expected: Add two test cases.
	
	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  Ian Lance Taylor  <ian@wasabisystems.com>
	
	Fix handling of constructor/destructor of standard substitution:
	* cp-demangle.c (struct d_standard_sub_info): Define.
	(d_substitution): Add prefix argument.  Change all callers.
	Rework handling of standard substitutions to print full name when
	qualifying a constructor/destructor, or when DMGL_VERBOSE is set.
	* testsuite/demangle-expected: Add test case.
	
	Fix handling of negative literal constants:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_LITERAL_NEG.
	(d_dump, d_make_comp): Handle D_COMP_LITERAL_NEG.
	(d_expr_primary): Use D_COMP_LITERAL_NEG for a negative number.
	(d_print_comp): Handle D_COMP_LITERAL_NEG.
	* testsuite/demangle-expected: Add test case.
	
	2003-12-04  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (IS_UPPER, IS_LOWER): Define.
	(d_last_char): Define new macro.
	(d_make_name): Reject an empty name.
	(d_prefix, d_unqualified_name, d_type): Use new IS_* macros.
	(d_substitution, d_print_identifier): Likewise.
	(d_print_comp) [D_COMP_OPERATOR]: Likewise.
	(d_print_comp) [D_COMP_TEMPLATE]: Use new d_last_char macro.
	(d_print_mod) Use new d_last_char macro.
	(d_print_cast): Use new d_last_char macro.
	(is_ctor_or_dtor): Don't leak memory.
	
	Fix handling of member function modifiers:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_RESTRICT_THIS,
	D_COMP_VOLATILE_THIS, and D_COMP_CONST_THIS.
	(d_dump): Dump new d_comp_type values.
	(d_make_comp): Accept new d_comp_type values.
	(has_return_type): Only accept _THIS variants of qualifiers.
	(d_encoding): Without DMGL_PARAMS, only remove _THIS variants of
	qualifiers.
	(d_cv_qualifiers): Add member_fn parameter.  Change all callers.
	(d_print_comp) [D_COMP_TYPED_NAME]: Rather than removing
	qualifiers and printing them at the end, add _THIS qualifiers to
	the modifier list.
	(d_print_comp) [D_COMP_*_THIS]: New cases.
	(d_print_comp) [D_COMP_PTRMEM_TYPE]: Remove special handling of
	qualifiers.
	(d_print_mod_list): Add suffix parameter.  Change all callers.
	Keep walking the list even if the current modifier has been
	printed.
	(d_print_mod): Handle new _THIS qualifiers.
	(d_print_function_type): Handle new _THIS qualifiers when deciding
	whether to print a parenthesis.  Put a space before the
	parenthesis in some cases.  Call d_print_mod_list again at the
	end, passing suffix as 1.
	(is_ctor_or_dtor): Look for new _THIS qualifiers.
	* testsuite/demangle-expected: Add test case.
	
	Fix for PR gcc/13304:
	* cp-demangle.c (d_print_comp) [D_COMP_TEMPLATE]: If the character
	before the '<' is itself a '<', insert a space.
	(d_print_cast): Likewise.
	* testsuite/demangle-expected: Add test case.
	
	Fix for PR gcc/13244:
	* cp-demangle.c (d_print_comp) [D_COMP_BINARY]: Wrap an expression
	which uses the '>' operator in an extra layer of parens.
	* testsuite/demangle-expected: Add test case.
	
	2003-11-29  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_demangle): Only return success if we consumed
	the entire demangled string.
	(is_ctor_or_dtor): Likewise.
	
	* testsuite/demangle-expected: Revert one part of 2003-06-26 patch
	to restore expected result of EDG test case to original expected
	result.
	
	2003-11-26  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (struct d_print_mod): Add templates field.
	(d_make_builtin_type): Check for NULL type.
	(d_make_extended_operator): Check for NULL name.
	(d_make_ctor, d_make_dtor): Likewise.
	(d_mangled_name): Add top_level parameter.  Change all callers.
	(d_encoding): If DMGL_PARAMS is not set, strip off initial
	CV-qualifiers.
	(d_type): Check some return values we rely on.
	(d_bare_function_type, d_array_type): Likewise.
	(d_pointer_to_member_type, d_template_args): Likewise.
	(d_add_substitution): Fail if argument is NULL.
	(d_print_resize): Check whether buf is NULL.
	(d_print_comp): Save current templates list with each modifier.
	Don't pass the modifier list down when printing a template.
	(d_print_cast): Don't pass the modifier list down when printing a
	template.
	(d_print_mod_list): Temporarily set templates list while printing
	a modifier.
	(d_print_mod): Check that buf is not NULL before using it.
	(d_print_function_type): Print parens if there is no modifier.
	(d_init_info): Permit as many substitutions as there are
	characters in the mangled name.
	* testsuite/demangle-expected: Add two new test cases.
	
	2003-11-25  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to
	d_demangle.
	
	2003-11-22  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_encoding): Add top_level parameter.  Change all
	callers.
	(print_usage): Display new -p option.
	(long_options): Add --no-params.
	(main): Accept and handle -p.
	
	2003-11-21  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (has_return_type): Skip qualifiers when checking
	whether we have a template.
	* testsuite/demangle-expected: Add four new tests.
	
	2003-11-20  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* testsuite/demangle-expected: Minor changes to match output of
	new demangler: adjust whitespace in four tests, and change order
	of qualifiers in one test.
	
	* cp-demangle.c: Complete rewrite.
	
	include/
	2004-05-04  Andreas Jaeger  <aj@suse.de>
	
	* demangle.h: Do not use C++ reserved keyword typename as
	parameter for cplus_demangle_fill_builtin_type.
	
	2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* demangle.h: Instead of checking ANSI_PROTOTYPES, just include
	"libiberty.h".
	
	* demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>.
	
	* demangle.h (enum demangle_component_type): Define.
	(struct demangle_operator_info): Declare.
	(struct demangle_builtin_type_info): Declare.
	(struct demangle_component): Define.
	(cplus_demangle_fill_component): Declare.
	(cplus_demangle_fill_name): Declare.
	(cplus_demangle_fill_builtin_type): Declare.
	(cplus_demangle_fill_operator): Declare.
	(cplus_demangle_fill_extended_operator): Declare.
	(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
	(cplus_demangle_v3_components): Declare.
	(cplus_demangle_print): Declare.
	
	2003-07-06  H.J. Lu <hongjiu.lu@intel.com>
	
	* demangle.h: Support C++.
	
	2002-06-25  Alan Modra  <amodra@bigpond.net.au>
	
	* demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>.
	
	libstdc++-v3/
	2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* testsuite/demangle/abi_examples/01.cc: Expect error -2.
	* testsuite/demangle/abi_examples/02.cc: Likewise.
	* testsuite/demangle/regression/cw-11.cc: Likewise.
	* testsuite/demangle/regression/cw-16.cc: Change two expected
	results to match libiberty demangler output.
	
	2003-12-05  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/13045
	* testsuite/demangle/regression/cw-16.cc: Updated two
	and added three tests.
	
	2003-11-12  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12947
	* testsuite/demangle/regression/cw-16.cc: Added tests for the
	added functionality.
	* testsuite/demangle/regression/3111-2.cc: sizeof now has a space
	appended.
	
	2003-11-07  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12736
	* testsuite/demangle/abi_text/01.cc: Reordered CV-qualifiers.
	* testsuite/demangle/regression/cw-16.cc: New.
	
	2003-10-14  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12600
	* testsuite/demangle/regression/cw-15.cc: New.
	
	2003-10-02  Carlo Wood  <carlo@alinoe.com>
	
	* testsuite/demangle/regression/cw-13.cc: Adjust for new output.
	
	2003-02-27  Benjamin Kosnik  <bkoz@redhat.com>
	
	* testsuite/testsuite_hooks.h
	(__gnu_cxx_test::verify_demangle): New.
	
	2003-02-27  Benjamin Kosnik  <bkoz@redhat.com>
	Carlo Wood  <carlo@alinoe.com>
	
	* testsuite/demangle/abi_examples/01.cc: New.
	* testsuite/demangle/abi_examples/02.cc: New.
	* testsuite/demangle/abi_examples/03.cc: New.
	* testsuite/demangle/abi_examples/04.cc: New.
	* testsuite/demangle/abi_examples/05.cc: New.
	* testsuite/demangle/abi_examples/06.cc: New.
	* testsuite/demangle/abi_examples/07.cc: New.
	* testsuite/demangle/abi_examples/08.cc: New.
	* testsuite/demangle/abi_examples/09.cc: New.
	* testsuite/demangle/abi_examples/10.cc: New.
	* testsuite/demangle/abi_examples/11.cc: New.
	* testsuite/demangle/abi_examples/12.cc: New.
	* testsuite/demangle/abi_examples/13.cc: New.
	* testsuite/demangle/abi_examples/14.cc: New.
	* testsuite/demangle/abi_examples/15.cc: New.
	* testsuite/demangle/abi_examples/16.cc: New.
	* testsuite/demangle/abi_examples/17.cc: New.
	* testsuite/demangle/abi_examples/18.cc: New.
	* testsuite/demangle/abi_examples/19.cc: New.
	* testsuite/demangle/abi_examples/20.cc: New.
	* testsuite/demangle/abi_examples/21.cc: New.
	* testsuite/demangle/abi_examples/22.cc: New.
	* testsuite/demangle/abi_examples/23.cc: New.
	* testsuite/demangle/abi_examples/24.cc: New.
	* testsuite/demangle/abi_examples/25.cc: New.
	* testsuite/demangle/abi_examples/26.cc: New.
	* testsuite/demangle/abi_text/01.cc: New.
	* testsuite/demangle/abi_text/02.cc: New.
	* testsuite/demangle/abi_text/03.cc: New.
	* testsuite/demangle/abi_text/04.cc: New.
	* testsuite/demangle/abi_text/05.cc: New.
	* testsuite/demangle/abi_text/06.cc: New.
	* testsuite/demangle/abi_text/07.cc: New.
	* testsuite/demangle/abi_text/08.cc: New.
	* testsuite/demangle/abi_text/09.cc: New.
	* testsuite/demangle/abi_text/10.cc: New.
	* testsuite/demangle/abi_text/11.cc: New.
	* testsuite/demangle/abi_text/12.cc: New.
	* testsuite/demangle/abi_text/13.cc: New.
	* testsuite/demangle/abi_text/14.cc: New.
	* testsuite/demangle/regression/3111-1.cc: New.
	* testsuite/demangle/regression/3111-2.cc: New.
	* testsuite/demangle/regression/7986-01.cc: New.
	* testsuite/demangle/regression/7986-02.cc: New.
	* testsuite/demangle/regression/7986-03.cc: New.
	* testsuite/demangle/regression/7986-04.cc: New.
	* testsuite/demangle/regression/7986-05.cc: New.
	* testsuite/demangle/regression/7986-06.cc: New.
	* testsuite/demangle/regression/7986-07.cc: New.
	* testsuite/demangle/regression/7986-08.cc: New.
	* testsuite/demangle/regression/7986-09.cc: New.
	* testsuite/demangle/regression/7986-10.cc: New.
	* testsuite/demangle/regression/7986-11.cc: New.
	* testsuite/demangle/regression/7986-12.cc: New.
	* testsuite/demangle/regression/7986.cc: New.
	* testsuite/demangle/regression/8897.cc: New.
	* testsuite/demangle/regression/cw-01.cc: New.
	* testsuite/demangle/regression/cw-02.cc: New.
	* testsuite/demangle/regression/cw-03.cc: New.
	* testsuite/demangle/regression/cw-04.cc: New.
	* testsuite/demangle/regression/cw-05.cc: New.
	* testsuite/demangle/regression/cw-06.cc: New.
	* testsuite/demangle/regression/cw-07.cc: New.
	* testsuite/demangle/regression/cw-08.cc: New.
	* testsuite/demangle/regression/cw-09.cc: New.
	* testsuite/demangle/regression/cw-10.cc: New.
	* testsuite/demangle/regression/cw-11.cc: New.
	* testsuite/demangle/regression/cw-12.cc: New.
	* testsuite/demangle/regression/cw-13.cc: New.
	* testsuite/demangle/regression/cw-14.cc: New.
	* testsuite/demangle/regression/old.cc: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/include/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.124.2.6.2.7&r2=1.124.2.6.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/include/demangle.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.21.22.1&r2=1.21.22.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/cp-demangle.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/cp-demint.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.398.2.24.2.8&r2=1.398.2.24.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/Makefile.in.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.78.2.7.4.2&r2=1.78.2.7.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/cp-demangle.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.46.4.1&r2=1.46.4.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/testsuite/Makefile.in.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.3&r2=1.3.16.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/testsuite/demangle-expected.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.14&r2=1.14.16.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libiberty/testsuite/test-demangle.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.1.28.1&r2=1.1.28.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.1464.2.109.2.22&r2=1.1464.2.109.2.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/Makefile.am.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.36.2.4&r2=1.36.2.4.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/libsupc++/Makefile.in.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.86.2.6&r2=1.86.2.6.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/testsuite_hooks.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.11.2.1&r2=1.11.2.1.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/01.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/02.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/03.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/04.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/05.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/06.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/07.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/08.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/09.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/10.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/11.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/12.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/13.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/14.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/15.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/16.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/17.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/18.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/19.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/20.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/21.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/22.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/23.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/24.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/25.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_examples/26.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/01.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/02.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/03.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/04.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/05.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/06.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/07.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/08.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/09.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/10.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/11.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/12.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/13.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/abi_text/14.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/3111-1.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/3111-2.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.4.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-01.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-02.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-03.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-04.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-05.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-06.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-07.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.20.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-08.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-09.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-10.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-11.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986-12.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/7986.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/8897.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-01.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-02.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-03.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-04.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-05.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-06.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-07.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-08.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-09.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-10.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-11.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-12.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-13.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.3.26.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-14.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-15.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.32.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/cw-16.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.5.16.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/demangle/regression/old.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=NONE&r2=1.2.28.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/13447] Another demangler problem with method cv-qualifiers
  2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2004-06-28 22:34 ` cvs-commit at gcc dot gnu dot org
@ 2004-07-01 10:59 ` cvs-commit at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-07-01 10:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-07-01 10:58 -------
Subject: Bug 13447

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_2-rhl8-branch
Changes by:	jakub@gcc.gnu.org	2004-07-01 10:58:26

Modified files:
	include        : ChangeLog 

Log message:
	libiberty/
	2004-02-24  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.h (enum d_builtin_type_print): Add D_PRINT_UNSIGNED,
	D_PRINT_UNSIGNED_LONG, D_PRINT_LONG_LONG,
	D_PRINT_UNSIGNED_LONG_LONG, D_PRINT_FLOAT.
	* cp-demangle.c (cplus_demangle_builtin_types): Change char and
	short types to D_PRINT_DEFAULT.  Change other integer types to use
	new D_PRINT_* values where appropriate.  Change float types to
	D_PRINT_FLOAT.
	(d_print_comp) [LITERAL, LITERAL_NEG]: Handle new D_PRINT_*
	values.
	* testsuite/demangle-expected: Adjust two test cases.
	
	* cp-demangle.c (d_print_function_type): Print a space before the
	parenthesis around the function type in more cases.
	* testsuite/demangle-expected: Adjust one test case.
	
	* cp-demangle.c (d_print_comp) [UNARY]: Don't emit extra
	parentheses around a cast.
	* testsuite/demangle-expected: Adjust two test cases to match new
	output.
	
	* cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle.
	
	* cp-demangle.c (d_print_comp) [RESTRICT, VOLATILE, CONST]: Don't
	push more than one of the same CV-qualifier on the top of the
	stack.
	(d_print_comp) [ARRAY_TYPE]: If the array itself is CV-qualified,
	move the CV-qualifiers to apply to the element type instead.
	(d_print_array_type): When checking the modifiers, keep looking
	past ones which have been printed already.
	* testsuite/demangle-expected: Add three test cases.
	
	2004-02-23  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (__cxa_demangle): Adjust last patch to handle
	empty string correctly.
	
	* cp-demangle.c (__cxa_demangle): It is not an error if status is
	not NULL.  It is an error if the mangled name is the same as a
	built-in type name.
	(main): If IN_GLIBCPP_V3 is defined, test __cxa_demangle rather
	than cplus_demangle_v3.
	
	2004-01-13  Daniel Jacobowitz  <drow@mvista.com>
	
	* cp-demangle.c (d_make_comp): DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
	takes two parameters.
	* cp-demint.c (cplus_demangle_fill_component): Likewise.
	
	2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c: Include "cp-demangle.h".  If IN_GLIBCPP_V3 is
	defined, rename some functions which are to become static via
	#define.
	(CP_STATIC_IF_GLIBCPP_V3): Define.
	(struct d_operator_info): Move definition to cp-demangle.h, and
	rename to demangle_operator_info.  Change all uses.
	(enum d_builtin_type_print): Move definition to cp-demangle.h.
	(struct d_builtin_type_info): Move definition to cp-demangle.h,
	and rename to demangle_builtin_type_info.  Change all uses.
	(enum d_comp_type): Move definition to include/demangle.h, and
	rename to demangle_component_type, and change all enums to start
	with DEMANGLE_COMPONENT_ instead of D_.  Change all uses.
	(struct d_comp): Move definition to include/demangle.h, and rename
	to demangle_component.  Change all uses.
	(struct d_info): Move definition to cp-demangle.h.
	(cplus_demangle_fill_name): New function.
	(cplus_demangle_fill_extended_operator): New function.
	(cplus_demangle_fill_ctor): New function.
	(cplus_demangle_fill_dtor): New function.
	(d_make_empty): Remove type parameter.  Change all callers.
	(d_make_name): Use cplus_demangle_fill_name.
	(d_make_extended_operator): Use
	cplus_demangle_fill_extended_operator.
	(d_make_ctor): Use cplus_demangle_fill_ctor.
	(d_make_dtor): Use cplus_demangle_fill_dtor.
	(cplus_demangle_mangled_name): Rename from d_mangled_name.  Make
	non-static by default.  Change all callers.
	(cplus_demangle_operators): Rename from d_operators.  Change all
	uses.  Make non-static by default.  Add sentinel at end of array.
	(d_operator_name): Adjust initialization of high for new sentinel
	in cplus_demangle_operators.
	(cplus_demangle_builtin_types): Rename from d_builtin_types.
	Change all uses.  Make non-static by default.  Change initializer
	to use D_BUILTIN_TYPE_COUNT instead of magic number 26.
	(cplus_demangle_type): Rename from d_type.  Make non-static by
	default.  Change all callers.
	(cplus_demangle_init_info): Rename from d_init_info.  Make
	non-static by default.  Change all callers.
	* cp-demangle.h: New file.
	* cp-demint.c: New file.
	* Makefile.in: Rebuild dependencies.
	(CFILES): Add cp-demint.c.
	(REQUIRED_OFILES): Add cp-demint.o.
	
	2004-01-02  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_encoding): When DMGL_PARAMS is not set, strip
	CV-qualifiers from D_COMP_LOCAL_NAME right subtree.
	* cplus-dem.c (demangle_arm_hp_template): Set DMGL_PARAMS when
	demangling template parameters.
	* testsuite/test-demangle.c (fail): New static function.
	(main): Support new options in input file: --no-params,
	--is-v3-ctor, and --is-v3-dtor.
	* testsuite/demangle-expected: Add --no-params to most tests, and
	add the correct result when parameters are not demangled.  Add
	some simple tests for V3 constructor/destructor recognition.
	
	2003-12-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	
	* cp-demangle.c (is_ctor_or_dtor): Fix error in last change.
	
	2003-12-22  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (CP_DYNAMIC_ARRAYS): Define if compiler supports
	dynamic arrays.
	(struct d_operator_info): Add len field.
	(struct d_builtin_type_info): Add len and java_len fields.
	(struct d_standard_sub_info): Add simple_len, full_len, and
	set_last_name_len fields.
	(struct d_comp): Add len field to s_string.
	(struct d_info): Add send, did_subs, and expansion fields.
	(d_append_string_constant): Define.
	(d_append_string): Remove.  Change all users to use
	d_append_string_constant or d_append_buffer instead.
	(d_make_sub): Add len parameter.  Change all callers.
	(d_name): Increase expansion when substituting std::.
	(d_unqualified_name): Increase expansion for an operator.
	(d_number): Don't use multiplication for negative numbers.
	(d_identifier): Make sure there are enough characters in the
	string for the specified length.  Adjust expansion for an
	anonymous namespace.
	(d_operators): Initialize len field.
	(d_special_name, d_ctor_dtor_name): Increase expansion.
	(d_builtin_types): Initialize len and java_len fields.
	(d_type): Increase expansion for a builtin type.
	(d_cv_qualifiers): Increase expansion for each qualifier.
	(d_bare_function_type): Decrease expansion when removing single
	void parameter.
	(d_template_param): Increment did_subs.
	(d_expression): Increase expansion for an operator.
	(d_expr_primary): Decrease expansion for a type we will print
	specially.
	(standard_subs): Initialize new fields.
	(d_substitution): Increment did_subs when doing a normal
	substitution.  Increase expansion for a special substitution.
	(d_print): Add estimate parameter.  Change all callers.
	(d_print_comp) [D_COMP_NAME]: Handle C++ case inline.
	(d_print_comp) [D_COMP_BINARY]: Use length to avoid strcmp call.
	(d_print_java_identifier): Rename from d_print_identifier.  Handle
	only Java case.  Change caller.
	(d_init_info): Change return type to void.  Change all callers.
	Initialize send, did_subs, and expansion fields.  Do not
	initialize comps and subs fields.
	(d_demangle): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and subs
	arrays on stack.  Make an estimate of the length of the demangled
	name.  Ifdef CP_DEMANGLE_DEBUG, print estimation failures.
	(is_ctor_or_dtor): Ifdef CP_DYNAMIC_ARRAYS, allocate comps and
	subs arrays on stack.
	
	2003-12-20  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_identifier): In Java mode, skip an optional '$'
	after the identifier.
	* testsuite/demangle-expected: Add test case.
	
	2003-12-19  Ian Lance Taylor  <ian@wasabisystems.com>
	
	Fix for PR c++/13447:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_LOCAL_NAME.
	(d_dump, d_make_comp): Handle D_COMP_LOCAL_NAME.
	(is_ctor_dtor_or_conversion): Handle D_COMP_LOCAL_NAME like
	D_COMP_QUAL_NAME.
	(is_ctor_or_dtor): Likewise.
	(d_local_name): Use D_COMP_LOCAL_NAME rather than
	D_COMP_QUAL_NAME.
	(d_print_comp) [D_COMP_LOCAL_NAME]: New.
	(d_prinT_comp) [D_COMP_TYPED_NAME]: If the left tree is
	D_COMP_LOCAL_NAME, pull any qualifiers off its right subtree.
	(d_print_mod_list): Handle D_COMP_LOCAL_NAME.
	* testsuite/demangle-expected: Add two test cases.
	
	* cp-demangle.c (d_print_function_type): Clear the global modifier
	list when printing the modifiers, not just when printing the
	function parameters.
	* testsuite/demangle-expected: Add two test cases.
	
	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  Ian Lance Taylor  <ian@wasabisystems.com>
	
	Fix handling of constructor/destructor of standard substitution:
	* cp-demangle.c (struct d_standard_sub_info): Define.
	(d_substitution): Add prefix argument.  Change all callers.
	Rework handling of standard substitutions to print full name when
	qualifying a constructor/destructor, or when DMGL_VERBOSE is set.
	* testsuite/demangle-expected: Add test case.
	
	Fix handling of negative literal constants:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_LITERAL_NEG.
	(d_dump, d_make_comp): Handle D_COMP_LITERAL_NEG.
	(d_expr_primary): Use D_COMP_LITERAL_NEG for a negative number.
	(d_print_comp): Handle D_COMP_LITERAL_NEG.
	* testsuite/demangle-expected: Add test case.
	
	2003-12-04  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (IS_UPPER, IS_LOWER): Define.
	(d_last_char): Define new macro.
	(d_make_name): Reject an empty name.
	(d_prefix, d_unqualified_name, d_type): Use new IS_* macros.
	(d_substitution, d_print_identifier): Likewise.
	(d_print_comp) [D_COMP_OPERATOR]: Likewise.
	(d_print_comp) [D_COMP_TEMPLATE]: Use new d_last_char macro.
	(d_print_mod) Use new d_last_char macro.
	(d_print_cast): Use new d_last_char macro.
	(is_ctor_or_dtor): Don't leak memory.
	
	Fix handling of member function modifiers:
	* cp-demangle.c (enum d_comp_type): Add D_COMP_RESTRICT_THIS,
	D_COMP_VOLATILE_THIS, and D_COMP_CONST_THIS.
	(d_dump): Dump new d_comp_type values.
	(d_make_comp): Accept new d_comp_type values.
	(has_return_type): Only accept _THIS variants of qualifiers.
	(d_encoding): Without DMGL_PARAMS, only remove _THIS variants of
	qualifiers.
	(d_cv_qualifiers): Add member_fn parameter.  Change all callers.
	(d_print_comp) [D_COMP_TYPED_NAME]: Rather than removing
	qualifiers and printing them at the end, add _THIS qualifiers to
	the modifier list.
	(d_print_comp) [D_COMP_*_THIS]: New cases.
	(d_print_comp) [D_COMP_PTRMEM_TYPE]: Remove special handling of
	qualifiers.
	(d_print_mod_list): Add suffix parameter.  Change all callers.
	Keep walking the list even if the current modifier has been
	printed.
	(d_print_mod): Handle new _THIS qualifiers.
	(d_print_function_type): Handle new _THIS qualifiers when deciding
	whether to print a parenthesis.  Put a space before the
	parenthesis in some cases.  Call d_print_mod_list again at the
	end, passing suffix as 1.
	(is_ctor_or_dtor): Look for new _THIS qualifiers.
	* testsuite/demangle-expected: Add test case.
	
	Fix for PR gcc/13304:
	* cp-demangle.c (d_print_comp) [D_COMP_TEMPLATE]: If the character
	before the '<' is itself a '<', insert a space.
	(d_print_cast): Likewise.
	* testsuite/demangle-expected: Add test case.
	
	Fix for PR gcc/13244:
	* cp-demangle.c (d_print_comp) [D_COMP_BINARY]: Wrap an expression
	which uses the '>' operator in an extra layer of parens.
	* testsuite/demangle-expected: Add test case.
	
	2003-11-29  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_demangle): Only return success if we consumed
	the entire demangled string.
	(is_ctor_or_dtor): Likewise.
	
	* testsuite/demangle-expected: Revert one part of 2003-06-26 patch
	to restore expected result of EDG test case to original expected
	result.
	
	2003-11-26  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (struct d_print_mod): Add templates field.
	(d_make_builtin_type): Check for NULL type.
	(d_make_extended_operator): Check for NULL name.
	(d_make_ctor, d_make_dtor): Likewise.
	(d_mangled_name): Add top_level parameter.  Change all callers.
	(d_encoding): If DMGL_PARAMS is not set, strip off initial
	CV-qualifiers.
	(d_type): Check some return values we rely on.
	(d_bare_function_type, d_array_type): Likewise.
	(d_pointer_to_member_type, d_template_args): Likewise.
	(d_add_substitution): Fail if argument is NULL.
	(d_print_resize): Check whether buf is NULL.
	(d_print_comp): Save current templates list with each modifier.
	Don't pass the modifier list down when printing a template.
	(d_print_cast): Don't pass the modifier list down when printing a
	template.
	(d_print_mod_list): Temporarily set templates list while printing
	a modifier.
	(d_print_mod): Check that buf is not NULL before using it.
	(d_print_function_type): Print parens if there is no modifier.
	(d_init_info): Permit as many substitutions as there are
	characters in the mangled name.
	* testsuite/demangle-expected: Add two new test cases.
	
	2003-11-25  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (java_demangle_v3): Pass DMGL_PARAMS to
	d_demangle.
	
	2003-11-22  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (d_encoding): Add top_level parameter.  Change all
	callers.
	(print_usage): Display new -p option.
	(long_options): Add --no-params.
	(main): Accept and handle -p.
	
	2003-11-21  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* cp-demangle.c (has_return_type): Skip qualifiers when checking
	whether we have a template.
	* testsuite/demangle-expected: Add four new tests.
	
	2003-11-20  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* testsuite/demangle-expected: Minor changes to match output of
	new demangler: adjust whitespace in four tests, and change order
	of qualifiers in one test.
	
	* cp-demangle.c: Complete rewrite.
	
	include/
	2004-05-04  Andreas Jaeger  <aj@suse.de>
	
	* demangle.h: Do not use C++ reserved keyword typename as
	parameter for cplus_demangle_fill_builtin_type.
	
	2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* demangle.h: Instead of checking ANSI_PROTOTYPES, just include
	"libiberty.h".
	
	* demangle.h: If ANSI_PROTOTYPES is defined, include <stddef.h>.
	
	* demangle.h (enum demangle_component_type): Define.
	(struct demangle_operator_info): Declare.
	(struct demangle_builtin_type_info): Declare.
	(struct demangle_component): Define.
	(cplus_demangle_fill_component): Declare.
	(cplus_demangle_fill_name): Declare.
	(cplus_demangle_fill_builtin_type): Declare.
	(cplus_demangle_fill_operator): Declare.
	(cplus_demangle_fill_extended_operator): Declare.
	(cplus_demangle_fill_ctor, cplus_demangle_fill_dtor): Declare.
	(cplus_demangle_v3_components): Declare.
	(cplus_demangle_print): Declare.
	
	2003-07-06  H.J. Lu <hongjiu.lu@intel.com>
	
	* demangle.h: Support C++.
	
	2002-06-25  Alan Modra  <amodra@bigpond.net.au>
	
	* demangle.h: #include "ansidecl.h" rather than #include <ansidecl.h>.
	
	libstdc++-v3/
	2004-02-26  Ian Lance Taylor  <ian@wasabisystems.com>
	
	* testsuite/demangle/abi_examples/01.cc: Expect error -2.
	* testsuite/demangle/abi_examples/02.cc: Likewise.
	* testsuite/demangle/regression/cw-11.cc: Likewise.
	* testsuite/demangle/regression/cw-16.cc: Change two expected
	results to match libiberty demangler output.
	
	2003-12-05  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/13045
	* testsuite/demangle/regression/cw-16.cc: Updated two
	and added three tests.
	
	2003-11-12  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12947
	* testsuite/demangle/regression/cw-16.cc: Added tests for the
	added functionality.
	* testsuite/demangle/regression/3111-2.cc: sizeof now has a space
	appended.
	
	2003-11-07  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12736
	* testsuite/demangle/abi_text/01.cc: Reordered CV-qualifiers.
	* testsuite/demangle/regression/cw-16.cc: New.
	
	2003-10-14  Carlo Wood  <carlo@alinoe.com>
	
	PR libstdc++/12600
	* testsuite/demangle/regression/cw-15.cc: New.
	
	2003-10-02  Carlo Wood  <carlo@alinoe.com>
	
	* testsuite/demangle/regression/cw-13.cc: Adjust for new output.
	
	2003-02-27  Benjamin Kosnik  <bkoz@redhat.com>
	
	* testsuite/testsuite_hooks.h
	(__gnu_cxx_test::verify_demangle): New.
	
	2003-02-27  Benjamin Kosnik  <bkoz@redhat.com>
	Carlo Wood  <carlo@alinoe.com>
	
	* testsuite/demangle/abi_examples/01.cc: New.
	* testsuite/demangle/abi_examples/02.cc: New.
	* testsuite/demangle/abi_examples/03.cc: New.
	* testsuite/demangle/abi_examples/04.cc: New.
	* testsuite/demangle/abi_examples/05.cc: New.
	* testsuite/demangle/abi_examples/06.cc: New.
	* testsuite/demangle/abi_examples/07.cc: New.
	* testsuite/demangle/abi_examples/08.cc: New.
	* testsuite/demangle/abi_examples/09.cc: New.
	* testsuite/demangle/abi_examples/10.cc: New.
	* testsuite/demangle/abi_examples/11.cc: New.
	* testsuite/demangle/abi_examples/12.cc: New.
	* testsuite/demangle/abi_examples/13.cc: New.
	* testsuite/demangle/abi_examples/14.cc: New.
	* testsuite/demangle/abi_examples/15.cc: New.
	* testsuite/demangle/abi_examples/16.cc: New.
	* testsuite/demangle/abi_examples/17.cc: New.
	* testsuite/demangle/abi_examples/18.cc: New.
	* testsuite/demangle/abi_examples/19.cc: New.
	* testsuite/demangle/abi_examples/20.cc: New.
	* testsuite/demangle/abi_examples/21.cc: New.
	* testsuite/demangle/abi_examples/22.cc: New.
	* testsuite/demangle/abi_examples/23.cc: New.
	* testsuite/demangle/abi_examples/24.cc: New.
	* testsuite/demangle/abi_examples/25.cc: New.
	* testsuite/demangle/abi_examples/26.cc: New.
	* testsuite/demangle/abi_text/01.cc: New.
	* testsuite/demangle/abi_text/02.cc: New.
	* testsuite/demangle/abi_text/03.cc: New.
	* testsuite/demangle/abi_text/04.cc: New.
	* testsuite/demangle/abi_text/05.cc: New.
	* testsuite/demangle/abi_text/06.cc: New.
	* testsuite/demangle/abi_text/07.cc: New.
	* testsuite/demangle/abi_text/08.cc: New.
	* testsuite/demangle/abi_text/09.cc: New.
	* testsuite/demangle/abi_text/10.cc: New.
	* testsuite/demangle/abi_text/11.cc: New.
	* testsuite/demangle/abi_text/12.cc: New.
	* testsuite/demangle/abi_text/13.cc: New.
	* testsuite/demangle/abi_text/14.cc: New.
	* testsuite/demangle/regression/3111-1.cc: New.
	* testsuite/demangle/regression/3111-2.cc: New.
	* testsuite/demangle/regression/7986-01.cc: New.
	* testsuite/demangle/regression/7986-02.cc: New.
	* testsuite/demangle/regression/7986-03.cc: New.
	* testsuite/demangle/regression/7986-04.cc: New.
	* testsuite/demangle/regression/7986-05.cc: New.
	* testsuite/demangle/regression/7986-06.cc: New.
	* testsuite/demangle/regression/7986-07.cc: New.
	* testsuite/demangle/regression/7986-08.cc: New.
	* testsuite/demangle/regression/7986-09.cc: New.
	* testsuite/demangle/regression/7986-10.cc: New.
	* testsuite/demangle/regression/7986-11.cc: New.
	* testsuite/demangle/regression/7986-12.cc: New.
	* testsuite/demangle/regression/7986.cc: New.
	* testsuite/demangle/regression/8897.cc: New.
	* testsuite/demangle/regression/cw-01.cc: New.
	* testsuite/demangle/regression/cw-02.cc: New.
	* testsuite/demangle/regression/cw-03.cc: New.
	* testsuite/demangle/regression/cw-04.cc: New.
	* testsuite/demangle/regression/cw-05.cc: New.
	* testsuite/demangle/regression/cw-06.cc: New.
	* testsuite/demangle/regression/cw-07.cc: New.
	* testsuite/demangle/regression/cw-08.cc: New.
	* testsuite/demangle/regression/cw-09.cc: New.
	* testsuite/demangle/regression/cw-10.cc: New.
	* testsuite/demangle/regression/cw-11.cc: New.
	* testsuite/demangle/regression/cw-12.cc: New.
	* testsuite/demangle/regression/cw-13.cc: New.
	* testsuite/demangle/regression/cw-14.cc: New.
	* testsuite/demangle/regression/old.cc: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/include/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.108.2.5.2.1.2.4&r2=1.108.2.5.2.1.2.5



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13447


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2004-07-01 10:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-19 16:32 [Bug c++/13447] New: Another demangler problem with method cv-qualifiers drow at gcc dot gnu dot org
2003-12-19 16:35 ` [Bug c++/13447] " ian at wasabisystems dot com
2003-12-19 16:37 ` drow at mvista dot com
2003-12-19 18:41 ` ian at wasabisystems dot com
2003-12-19 18:57 ` drow at mvista dot com
2003-12-19 19:18 ` ian at wasabisystems dot com
2003-12-19 19:28 ` giovannibajo at libero dot it
2003-12-19 19:29 ` drow at mvista dot com
2003-12-19 21:45 ` cvs-commit at gcc dot gnu dot org
2003-12-20  0:32 ` ian at airs dot com
2003-12-20  1:59 ` dhazeghi at yahoo dot com
2004-06-28 22:34 ` cvs-commit at gcc dot gnu dot org
2004-07-01 10:59 ` cvs-commit at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).