From: Jason Gunthorpe <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
To: Bart Van Assche <Bart.VanAssche-Sjgp3cTcYWE@public.gmane.org>
Cc: "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH rdma-core] mlx4: Fix 1<<31 expressions
Date: Fri, 9 Feb 2018 09:10:30 -0700 [thread overview]
Message-ID: <20180209161030.GA7584@mellanox.com> (raw)
In-Reply-To: <1518192109.2871.5.camel-Sjgp3cTcYWE@public.gmane.org>
On Fri, Feb 09, 2018 at 04:01:51PM +0000, Bart Van Assche wrote:
> On Thu, 2018-02-08 at 16:38 -0700, Jason Gunthorpe wrote:
> > enum {
> > - MLX4_WQE_BIND_TYPE_2 = (1<<31),
> > + MLX4_WQE_BIND_TYPE_2 = (1UL<<31),
> > MLX4_WQE_BIND_ZERO_BASED = (1<<30),
> > };
>
> Hello Jason,
>
> A quote from the C11 standard:
>
> "The expression that defines the value of an enumeration constant shall be an
> integer constant expression that has a value representable as an int. [ ... ]
> Each enumerated type shall be compatible with char, a signed integer type, or
> an unsigned integer type. The choice of type is implementation-defined but
> shall be capable of representing the values of all the members of the
> enumeration."
>
> Does that mean that this change relies on extensions to the C standard?
Yes, this relies on a common compiler extension to promote the type of
enum constants beyond int. AFAIK all compilers have done this forever,
kinda bonkers it isn't in C11, IMHO.
As I understand it, the current code is also non-conforming as (1<<31)
is apparently undefined behavior, and at least gcc throws a warning
for it in -Wpedantic mode.
I did a patch that will make our public headers mostly strictly
conforming to C11 with -Wpedantic set, which I've been wondering if it
is worth sending..
Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-02-09 16:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-08 23:38 [PATCH rdma-core] mlx4: Fix 1<<31 expressions Jason Gunthorpe
[not found] ` <20180208233829.GA16128-uk2M96/98Pc@public.gmane.org>
2018-02-09 16:01 ` Bart Van Assche
[not found] ` <1518192109.2871.5.camel-Sjgp3cTcYWE@public.gmane.org>
2018-02-09 16:10 ` Jason Gunthorpe [this message]
[not found] ` <20180209161030.GA7584-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2018-02-09 16:12 ` Parav Pandit
[not found] ` <HE1PR0502MB3004BB45FC9ADB9B49CAF283D1F20-692Kmc8YnlL9PhveBwpv4cDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2018-02-09 16:13 ` Jason Gunthorpe
[not found] ` <20180209161325.GD7570-uk2M96/98Pc@public.gmane.org>
2018-02-09 16:20 ` Parav Pandit
2018-02-09 16:42 ` Leon Romanovsky
[not found] ` <20180209164200.GO2197-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2018-02-09 16:51 ` Jason Gunthorpe
[not found] ` <20180209165138.GA11850-uk2M96/98Pc@public.gmane.org>
2018-02-09 16:55 ` Leon Romanovsky
2018-02-09 16:19 ` Bart Van Assche
[not found] ` <1518193161.2871.14.camel-Sjgp3cTcYWE@public.gmane.org>
2018-02-09 16:24 ` Jason Gunthorpe
[not found] ` <20180209162453.GD7584-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2018-02-09 17:18 ` Bart Van Assche
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=20180209161030.GA7584@mellanox.com \
--to=jgg-vpraknaxozvwk0htik3j/w@public.gmane.org \
--cc=Bart.VanAssche-Sjgp3cTcYWE@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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.