From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fergus Henderson To: Andrew Cagney Cc: gcc-patches@gcc.gnu.org, gdb-patches@sources.redhat.com, binutils@sources.redhat.com Subject: Re: [rfa] Change lbasename() to return ``const char *'' Date: Wed, 08 Aug 2001 05:09:00 -0000 Message-id: <20010808220910.A8080@murlibobo.cs.mu.OZ.AU> References: <3B709080.7040508@cygnus.com> X-SW-Source: 2001-08/msg00079.html On 07-Aug-2001, Andrew Cagney wrote: > The attached patch changes the liberty function lbasename() so that it > returns ``const char *''. Why? That will lead to the need for casts in the callers. Why not just put the cast in lbasename(), like is done for strchr() in the C standard? lbasename() is const-polymorphic, i.e. the return value should be a const pointer iff the argument is a const pointer. C doesn't have any good way to express the type of const-polymorphic routines. Unless you duplicate the code in two functions, one for const pointers and one for non-const pointers, some casting will be required. -- Fergus Henderson | "I have always known that the pursuit The University of Melbourne | of excellence is a lethal habit" WWW: < http://www.cs.mu.oz.au/~fjh > | -- the last words of T. S. Garp.