Re: [3/8] kill gen_init_cpio.c printk() of size_t warning
From: linux-os (linux-os_at_chaos.analogic.com)
Date: 01/03/05
- Previous message: William Lee Irwin III: "Re: starting with 2.7"
- In reply to: H. Peter Anvin: "Re: [3/8] kill gen_init_cpio.c printk() of size_t warning"
- Next in thread: Al Viro: "Re: [3/8] kill gen_init_cpio.c printk() of size_t warning"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 3 Jan 2005 17:03:24 -0500 (EST) To: "H. Peter Anvin" <hpa@zytor.com>
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,
>>> Bull***. 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 bull***, 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,
*** 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/
- Previous message: William Lee Irwin III: "Re: starting with 2.7"
- In reply to: H. Peter Anvin: "Re: [3/8] kill gen_init_cpio.c printk() of size_t warning"
- Next in thread: Al Viro: "Re: [3/8] kill gen_init_cpio.c printk() of size_t warning"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]