Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.BSM.4.64L.2407181649320.2401@herc.mirbsd.org>
Date: Thu, 18 Jul 2024 16:54:23 +0000 (UTC)
From: Thorsten Glaser <tg@...bsd.de>
To: musl@...ts.openwall.com
Subject: Re: [PATCH 1/1] FD_SET() and FD_ISSET() warn on -Wsign-conversion

Rich Felker dixit:

>What's really frustrating about these kinds of garbage warnings is
>that they encourage (as in the proposed patch) writing casts that
>*remove type-safety* and make very-wrong code silently compile "fine",
>for the purpose of suppressing a warning that's supposedly about a
>type-safety issue.

The warning *can* be useful, though.

You could always hide a cast-y version behind __extension__({…})
if GCC or compatible is detected (ugh).

For *this* specific case, it might be sufficient to instead cast
the constant term to signed (I can’t believe I found a case where
using signed ints, despite the UB danger, is the possible fix):

#define FD_SET(d,s)	((s)->fds_bits[(d) / (int)(8 * sizeof(long))] |= \
			    (1UL << ((d) % (int)(8 * sizeof(long)))))

bye,
//mirabilos
-- 
11:56⎜«liwakura:#!/bin/mksh» also, i wanted to add mksh to my own distro │
i was disappointed that there is no makefile │ but somehow the Build.sh is
the least painful built system i've ever seen │ honours CC, {CPP,C,LD}FLAGS
properly │ looks cleary like done by someone who knows what they are doing

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.