[U-Boot-Users] [PATCH] cmd_nand: Fix warning: dereferencing type-punned pointer will break strict-aliasing rules

Wolfgang Denk
2008-04-02T14:39:19Z

In message <1207136270-19315-1-git-send-email-plagnioj@jcrosoft.com> you wrote:
> cmd_nand.c:353: warning: dereferencing type-punned pointer will break strict-aliasing rules
> cmd_nand.c:356: warning: dereferencing type-punned pointer will break strict-aliasing rules
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
>
> diff --git a/common/cmd_nand.c b/common/cmd_nand.c
> index 7b1f830..2906aed 100644
> --- a/common/cmd_nand.c
> +++ b/common/cmd_nand.c
> @@ -84,7 +84,7 @@ static int nand_dump(nand_info_t *nand, ulong off)
>
> /* ------------------------------------------------------------------------- */
>
> -static inline int str2long(char *p, ulong *num)
> +static inline int str2long(char *p, loff_t *num)

I think this is plain wrong. It may silence the warning, but it is
wrong.

The type is the result of calling simple_strtoul(), and this function
returns, um, and unsigned long. And not an offset type.

> -arg_off_size(int argc, char *argv[], nand_info_t *nand, ulong *off, ulong *size)
> +arg_off_size(int argc, char *argv[], nand_info_t *nand, loff_t *off, size_t *size)

No. That's all wrong.

NAK.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The IQ of the group is the lowest IQ of a member of the group divided
by the number of people in the group.