From: Dan Carpenter <dan.carpenter@linaro.org>
To: Vincent Mailhol <mailhol@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>,
Nicolas Schier <nsc@kernel.org>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Chris Mason <clm@fb.com>, David Sterba <dsterba@suse.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kbuild@vger.kernel.org, linux-sparse@vger.kernel.org,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev,
dri-devel@lists.freedesktop.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 1/2] kbuild: remove gcc's -Wtype-limits
Date: Thu, 18 Dec 2025 22:36:04 +0300 [thread overview]
Message-ID: <aURXpAwm-ITVlHMl@stanley.mountain> (raw)
In-Reply-To: <20251218-remove_wtype-limits-v1-1-735417536787@kernel.org>
On Thu, Dec 18, 2025 at 07:50:01PM +0100, Vincent Mailhol wrote:
> W=2 builds are heavily polluted by the -Wtype-limits warning.
>
> Here are some W=12 statistics on Linux v6.19-rc1 for an x86_64
> defconfig (with just CONFIG_WERROR set to "n") using gcc 14.3.1:
>
> Warning name count percent
> -------------------------------------------------
> -Wlogical-op 2 0.00 %
> -Wmaybe-uninitialized 138 0.20 %
> -Wunused-macros 869 1.24 %
> -Wmissing-field-initializers 1418 2.02 %
> -Wshadow 2234 3.19 %
> -Wtype-limits 65378 93.35 %
> -------------------------------------------------
> Total 70039 100.00 %
>
> As we can see, -Wtype-limits represents the vast majority of all
> warnings. The reason behind this is that these warnings appear in
> some common header files, meaning that some unique warnings are
> repeated tens of thousands of times (once per header inclusion).
>
> Add to this the fact that each warning is coupled with a dozen lines
> detailing some macro expansion. The end result is that the W=2 output
> is just too bloated and painful to use.
>
> Three years ago, I proposed in [1] modifying one such header to
> silence that noise. Because the code was not faulty, Linus rejected
> the idea and instead suggested simply removing that warning.
>
> At that time, I could not bring myself to send such a patch because,
> despite its problems, -Wtype-limits would still catch the below bug:
>
> unsigned int ret;
>
> ret = check();
> if (ret < 0)
> error();
>
> Meanwhile, based on another suggestion from Linus, I added a new check
> to sparse [2] that would catch the above bug without the useless spam.
>
> With this, remove gcc's -Wtype-limits. People who still want to catch
> incorrect comparisons between unsigned integers and zero can now use
> sparse instead.
>
> On a side note, clang also has a -Wtype-limits warning but:
>
> * it is not enabled in the kernel at the moment because, contrary to
> gcc, clang did not include it under -Wextra.
>
> * it does not warn if the code results from a macro expansion. So,
> if activated, it would not cause as much spam as gcc does.
>
> * -Wtype-limits is split into four sub-warnings [3] meaning that if
> it were to be activated, we could select which one to keep.
>
Sounds good. I like your Sparse check.
Maybe we should enable the Sparse checking as well because it sounds
like they are doing a lot of things right. I think Smatch catches the
same bugs that Clang would but it would be good to have multiple
implementations. The -Wtautological-unsigned-enum-zero-compare trips
people up because they aren't necessarily expecting enums to be
unsigned.
regards,
dan carpenter
next prev parent reply other threads:[~2025-12-18 19:36 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-18 18:50 [PATCH 0/2] kbuild: remove gcc's -Wtype-limits Vincent Mailhol
2025-12-18 18:50 ` [PATCH 1/2] " Vincent Mailhol
2025-12-18 19:36 ` Dan Carpenter [this message]
2025-12-18 22:31 ` Vincent Mailhol
2025-12-19 6:56 ` Dan Carpenter
2025-12-19 22:21 ` Vincent Mailhol
2025-12-18 18:50 ` [PATCH 2/2] kbuild: cleanup local -Wno-type-limits exceptions Vincent Mailhol
2025-12-18 20:24 ` David Sterba
2025-12-18 20:26 ` [PATCH 0/2] kbuild: remove gcc's -Wtype-limits David Laight
2025-12-18 20:34 ` Linus Torvalds
2025-12-18 22:06 ` David Laight
2025-12-18 22:19 ` Linus Torvalds
2025-12-19 7:08 ` Dan Carpenter
2025-12-19 7:33 ` Nicolas Schier
2025-12-19 22:06 ` Vincent Mailhol
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aURXpAwm-ITVlHMl@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=airlied@gmail.com \
--cc=clm@fb.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=dsterba@suse.com \
--cc=justinstitt@google.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sparse@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mailhol@kernel.org \
--cc=morbo@google.com \
--cc=mripard@kernel.org \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=nsc@kernel.org \
--cc=simona@ffwll.ch \
--cc=torvalds@linux-foundation.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.