lkml.org 
[lkml]   [2006]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC][PATCH] A generic boolean (version 6)
    From
    Date
    On Fri, 2006-07-28 at 22:24 +0200, Lars Noschinski wrote:
    > * Alan Cox <alan@lxorguk.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@comcast.net>

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-07-28 23:33    [W:4.444 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site