2020-04-18 18:55:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 2/9] fs: fix empty-body warning in posix_acl.c

On Sat, Apr 18, 2020 at 11:41 AM Randy Dunlap <[email protected]> wrote:
>
> Fix gcc empty-body warning when -Wextra is used:

Please don't do this.

First off, "do_empty()" adds nothing but confusion. Now it
syntactically looks like it does something, and it's a new pattern to
everybody. I've never seen it before.

Secondly, even if we were to do this, then the patch would be wrong:

> if (cmpxchg(p, ACL_NOT_CACHED, sentinel) != ACL_NOT_CACHED)
> - /* fall through */ ;
> + do_empty(); /* fall through */

That comment made little sense before, but it makes _no_ sense now.

What fall-through? I'm guessing it meant to say "nothing", and
somebody was confused. With "do_empty()", it's even more confusing.

Thirdly, there's a *reason* why "-Wextra" isn't used.

The warnings enabled by -Wextra are usually complete garbage, and
trying to fix them often makes the code worse. Exactly like here.

Linus


2020-04-18 18:56:24

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 2/9] fs: fix empty-body warning in posix_acl.c

On 4/18/20 11:53 AM, Linus Torvalds wrote:
> On Sat, Apr 18, 2020 at 11:41 AM Randy Dunlap <[email protected]> wrote:
>>
>> Fix gcc empty-body warning when -Wextra is used:
>
> Please don't do this.
>
> First off, "do_empty()" adds nothing but confusion. Now it
> syntactically looks like it does something, and it's a new pattern to
> everybody. I've never seen it before.
>
> Secondly, even if we were to do this, then the patch would be wrong:
>
>> if (cmpxchg(p, ACL_NOT_CACHED, sentinel) != ACL_NOT_CACHED)
>> - /* fall through */ ;
>> + do_empty(); /* fall through */
>
> That comment made little sense before, but it makes _no_ sense now.
>
> What fall-through? I'm guessing it meant to say "nothing", and
> somebody was confused. With "do_empty()", it's even more confusing.
>
> Thirdly, there's a *reason* why "-Wextra" isn't used.
>
> The warnings enabled by -Wextra are usually complete garbage, and
> trying to fix them often makes the code worse. Exactly like here.

OK, no problem. That's why PATCH 0/9 says RFC.

Oops. Crap. It was *supposed* to say RFC. :(

--
~Randy

2020-04-20 19:59:49

by Zzy Wysm

[permalink] [raw]
Subject: Re: [PATCH 2/9] fix empty-body warning in posix_acl.c


> On Apr 18, 2020, at 1:53 PM, Linus Torvalds <[email protected]> wrote:
>
> Thirdly, there's a *reason* why "-Wextra" isn't used.
>
> The warnings enabled by -Wextra are usually complete garbage, and
> trying to fix them often makes the code worse. Exactly like here.
>

As the instigator of this warning cleanup activity, even _I_ don’t recommend
building with all of -Wextra. Doing so on an allmodconfig build generates
500 megabytes of warning text (not exaggerating), primarily due to
-Wunused-parameter and Wmissing-field-initializers.

I strongly recommend disabling them with -Wno-unused-parameter
-Wno-missing-field-initializers since the spew is completely unactionable.

On the other hand, -Woverride-init found a legit bug that was breaking DVD
drives, fixed in commit 03264ddde2453f6877a7d637d84068079632a3c5.

I believe finding a good set of compiler warning settings can lead to lots of
good bugs being spotted and (hopefully) fixed. Why let syzbot do all the work?

zzy