lkml.org 
[lkml]   [2005]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [3/8] kill gen_init_cpio.c printk() of size_t warning
    On Mon, 3 Jan 2005, H. Peter Anvin wrote:

    > William Lee Irwin III wrote:
    >>
    >> On Mon, Jan 03, 2005 at 09:09:48PM +0000, H. Peter Anvin wrote:
    >>
    >>> Dear Wrongbot,
    >>> Bullshit. Signed is promoted to unsigned.
    >>
    >> I'm not sure who you're responding to here, but gcc emitted an actual
    >> warning and I was only attempting to carry out the minimal effort
    >> necessary to silence it. I'm not really interested in creating or
    >> being involved with controversy, just silencing the core build in the
    >> least invasive and so on way possible, leaving deeper drivers/ issues
    >> to the resolution of the true underlying problems.
    >>
    >> I don't have anything to do with the code excerpt above; I merely
    >> followed the style of the other unsigned integer coercions in the file.
    >>
    >
    > I was not responding to you, your stuff is perfectly sane.
    >
    > The claim from the Wrongbot was that "foo + 1" is bad when foo is a size_t.
    > This is utter bullshit, since that's EXACTLY equivalent to:
    >
    > foo + (size_t)1
    >
    > ... because of promotion rules.
    >
    > -hpa
    > -

    I made no such claim. I claimed that the posted fix was wrong:

    >
    > Index: mm1-2.6.10/usr/gen_init_cpio.c
    > ===================================================================
    > --- mm1-2.6.10.orig/usr/gen_init_cpio.c 2005-01-03 06:45:53.000000000 -0800
    > +++ mm1-2.6.10/usr/gen_init_cpio.c 2005-01-03 09:42:18.000000000 -0800
    > @@ -112,7 +112,7 @@
    > (long) gid, /* gid */
    > 1, /* nlink */
    > (long) mtime, /* mtime */
    > - strlen(target) + 1, /* filesize */
    > + (unsigned)strlen(target) + 1,/* filesize */
    > 3, /* major */
    > 1, /* minor */
    > 0, /* rmajor */
    > -


    This is wrong because strlen() already returns a size_t (unsigned).
    This "fix" only served to quiet the compiler which was warning
    about the conversion. It is a "conversion", not a "promotion".
    The simple fix to quiet this conversion warning is to use 1U
    as previously shown.

    Cheers,
    Dick Johnson
    Penguin : Linux version 2.6.9 on an i686 machine (5537.79 BogoMips).
    Notice : All mail here is now cached for review by Dictator Bush.
    98.36% of all statistics are fiction.
    -
    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: 2005-03-22 14:09    [W:0.022 / U:0.908 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site