[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1154122271.2451.1.camel@entropy>
Date: Fri, 28 Jul 2006 14:31:11 -0700
From: Nicholas Miell <nmiell@...cast.net>
To: Lars Noschinski <cebewee@....de>
Cc: Alan Cox <alan@...rguk.ukuu.org.uk>, ricknu-0@...dent.ltu.se,
Arnd Bergmann <arnd.bergmann@...ibm.com>,
linux-kernel@...r.kernel.org, Andrew Morton <akpm@...l.org>,
Jeff Garzik <jeff@...zik.org>,
Alexey Dobriyan <adobriyan@...il.com>,
Vadim Lobanov <vlobanov@...akeasy.net>,
Jan Engelhardt <jengelh@...ux01.gwdg.de>
Subject: Re: [RFC][PATCH] A generic boolean (version 6)
On Fri, 2006-07-28 at 22:24 +0200, Lars Noschinski wrote:
> * Alan Cox <alan@...rguk.ukuu.org.uk> [2006-07-28 22:14]:
> >Ar Iau, 2006-07-27 am 13:13 -0700, ysgrifennodd Nicholas Miell:
> >> The compiler knows that "b = !!b;" is a no-op.
> >
> >b = !!b isn't a no-op.
>
> For _Bool it should be:
>
> >Try printf("%d", !!4);
>
> printf("%d, %d", (_Bool)4, !!(_Bool)4);
>
> prints "1, 1". From ISO/IEC 9899:1999:
>
> When any scalar value is converted to _Bool, the result is 0 if the
> value compares equal to 0; otherwise, the result is 1.
>
We're not talking about scalar values converted to _Bool, we're talking
about the kernel getting a supposed _Bool from userspace which doesn't
actually contain 0 or 1. (i.e. as far as the kernel and/or gcc is
concerned, the scalar conversion has already taken place)
--
Nicholas Miell <nmiell@...cast.net>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists