> Date: Sat, 5 Apr 2025 19:18:20 +0200
> From: Roland Illig <roland.il...@gmx.de>
> 
> Would it be narrow enough to add /*CONSTCOND*/ to the definition of
> ALIGNED_POINTER on i386 and amd64? Or would you consider this still too
> broad?

Might be reasonable.  But then we have a lot of predicates that might
be used in conditionals but be constant on some architectures, which
raises the question of which ones should be marked.

I wonder how many real bugs -- true positives -- lint's
constant-condition warnings find.

> The next alternative would be to mark each call to ALIGNED_POINTER as
> /*CONSTCOND*/, but that would be additional work in several places.

This reminds me of gcc's infuriating feature where carefully writing
safe bounds checks like

        unsigned n = ...;

        if (n > SIZE_MAX - sizeof(header))
                goto fail;
        x = malloc(sizeof(header) + n);

leads to -Wtype-limits failures on architectures where size_t is
64-bit and int is 32-bit, so you have to go to _extra work_ to
conditionalize the perfectly safe idiom, turning it into something
riskier just to pacify the warning, making the warning actively
harmful.

Reply via email to