From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
To: Dan <dan.carpenter@oracle.com>
Cc: olaf@aepfle.de, sthemmin@microsoft.com,
Greg KH <gregkh@linuxfoundation.org>,
jasowang@redhat.com, linux-kernel <linux-kernel@vger.kernel.org>,
Stable@vger.kernel.org, Michael.H.Kelley@microsoft.com,
Robo Bot <apw@canonical.com>,
devel@linuxdriverproject.org, vkuznets@redhat.com,
haiyangz@microsoft.com
Subject: Re: [PATCH 3/5] Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up
Date: Sun, 21 Oct 2018 06:15:53 +0200 [thread overview]
Message-ID: <CANiq72kX5yVC88W1Y8aTLvsZ4OS-bg9iLvuvo95dkocn2bCGeg@mail.gmail.com> (raw)
In-Reply-To: <20181020192207.a6mne4npklprlyym@mwanda>
Hi Dan,
On Sat, Oct 20, 2018 at 9:22 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> On Sat, Oct 20, 2018 at 04:42:07PM +0200, Miguel Ojeda wrote:
> > Using an attribute is indeed better whenever possible. In C++17 it is
> > an standard attribute and there have been proposals to include some of
> > them for C as well since 2016 at least, e.g. the latest for
> > fallthrough at:
> >
> > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2268.pdf
> >
> > I have taken a quick look into supporting it (typing it here to save
> > it on the mailing list :-), and we have:
> >
> > * gcc >= 7.1 supports -Wimplicit-fallthrough with
> > __attribute__((fallthrough)), the comment syntax and the C++
> > [[fallthrough]] syntax.
> > * gcc < 7.1 complains about empty declarations (it does not know
> > about attributes for null statements) and also
> > -Wdeclaration-after-statement.
>
> I'm not sure I understand about empty decalarations. The idea is that
> we would do:
That paragraph tried to explain that gcc < 7.1 did not know about
__attribute__((fallthrough)); i.e. that everything was introduced in
gcc 7.1.
Anyway, the conclusion was a neuron misfiring of mine -- in my mind I
was thinking clang supported the comment syntax (when I clearly wrote
that it didn't). Never mind --- thanks for pointing it out!
>
> case 3:
> frob();
> __fall_through();
> case 4:
> frob();
>
> #if GCC > 7.1
> #define __fall_through() __attribute__((fallthrough))
> #else
> #define __fall_through()
> #endif
Yes, of course, that is what we do for other attributes -- actually in
-next we have pending a better way for checking, using
__has_attribute:
#if __has_attribute(fallthrough)
#define __fallthrough __attribute__((fallthrough))
#else
#define __fallthrough
#endif
>
> So long as GCC and static analysis tools understand about the attribute
> that's enought to catch the bugs. No one cares what clang and icc do.
Not so sure about that -- there are quite some people looking forward
to building Linux with clang, even if only to have another compiler to
check for warnings and to use the clang/llvm-related tools (and to
write new ones).
> We would just disable the fall through warnings on those until they are
> updated to support the fallthrough attribute.
You mean if they start supporting the warning but not the attribute? I
don't think that would be likely (i.e. if clang enables the warning on
C mode, they will have to introduce a way to suppress it; which should
be the attribute (at least), since they typically like to be
compatible with gcc and since they already support it in C++ >= 11),
but everything is possible.
>
> We wouldn't update all the fall through comments until later, but going
> forward people could use the __fall_through() macro if they want.
Agreed. I will introduce it in the compiler-attributes tree -- should
be there for -rc1 if no one complains. CC'ing all of you in the patch.
Cheers,
Miguel
next prev parent reply other threads:[~2018-10-21 4:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-17 3:12 [PATCH 0/5] Drivers: hv: Miscellaneous fixes kys
2018-10-17 3:14 ` [PATCH 1/5] Drivers: hv: vmbus: Get rid of unnecessary state in hv_context kys
2018-10-17 3:14 ` [PATCH 2/5] hv_utils: update name in struct hv_driver util_drv kys
2018-10-17 3:14 ` [PATCH 3/5] Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up kys
2018-10-17 5:07 ` Greg KH
2018-10-17 5:11 ` Gustavo A. R. Silva
2018-10-17 6:02 ` KY Srinivasan
2018-10-17 17:56 ` Dexuan Cui
2018-10-17 6:22 ` Dan Carpenter
2018-10-20 14:42 ` Miguel Ojeda
2018-10-20 19:22 ` Dan Carpenter
2018-10-21 4:15 ` Miguel Ojeda [this message]
2018-10-17 18:01 ` Dexuan Cui
2018-10-17 3:14 ` [PATCH 4/5] Drivers: hv: kvp: Use %u to print U32 kys
2018-10-17 5:04 ` Greg KH
2018-10-17 5:59 ` KY Srinivasan
2018-10-17 3:14 ` [PATCH 5/5] Tools: hv: kvp: Fix a warning of buffer overflow with gcc 8.0.1 kys
2018-10-17 5:07 ` Greg KH
2018-10-17 19:57 ` Dexuan Cui
2018-10-17 5:04 ` [PATCH 1/5] Drivers: hv: vmbus: Get rid of unnecessary state in hv_context Greg KH
2018-10-17 5:59 ` KY Srinivasan
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=CANiq72kX5yVC88W1Y8aTLvsZ4OS-bg9iLvuvo95dkocn2bCGeg@mail.gmail.com \
--to=miguel.ojeda.sandonis@gmail.com \
--cc=Michael.H.Kelley@microsoft.com \
--cc=Stable@vger.kernel.org \
--cc=apw@canonical.com \
--cc=dan.carpenter@oracle.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=olaf@aepfle.de \
--cc=sthemmin@microsoft.com \
--cc=vkuznets@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).