Re: git: 05c9a0158f68 - main - libc: Add strverscmp(3) and versionsort(3)

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Thu, 25 Aug 2022 21:56:41 UTC
On Thu, Aug 25, 2022 at 09:33:47PM +0000, Brooks Davis wrote:
> On Thu, Aug 25, 2022 at 04:22:56AM +0300, Konstantin Belousov wrote:
> > On Thu, Aug 25, 2022 at 02:07:12AM +0100, Jessica Clarke wrote:
> > > On 25 Aug 2022, at 01:29, Konstantin Belousov <kib@FreeBSD.org> wrote:
> > > > +	const unsigned char *u1 = __DECONST(const unsigned char *, s1);
> > > > +	const unsigned char *u2 = __DECONST(const unsigned char *, s2);
> > > 
> > > Why is __DECONST needed? Casting from const char * to const unsigned
> > > char * should never warn, surely?
> > 
> > I requested the use of __DECONST there. Nobody knows what would be next
> > trend in the C language breaking among compiler writers. We guarantee
> > that __DECONST() is adopted to whatever warnings are added.
> 
> We're not going to add an obfuscated cast through uintptr_t for every
> change of signedness.  That would be absurd and there is no reason to
> belive a future C would ever require it.

Whatever it takes, I believe we need an analog of reinterpret_cast<>
in cdefs.h.