GCC47: Fix warning in md5.c
authorMarek Vasut <marex@denx.de>
Sat, 28 Apr 2012 22:28:40 +0000 (00:28 +0200)
committerWolfgang Denk <wd@denx.de>
Sun, 29 Apr 2012 12:14:08 +0000 (14:14 +0200)
md5.c: In function ‘MD5Final’:
md5.c:156:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
md5.c:157:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
include/u-boot/md5.h
lib/md5.c

index 08924cce3cf0b520d64f922dcb61953c9fa9f58a..e09c16a6e3fe1e10ca539a6bee5cbba6cf304546 100644 (file)
 struct MD5Context {
        __u32 buf[4];
        __u32 bits[2];
-       unsigned char in[64];
+       union {
+               unsigned char in[64];
+               __u32 in32[16];
+       };
 };
 
 /*
index 81a09e3f904f3226f52c704b63bd7dc6aa28f3f1..2ae4a06319c4828c9210d79bb031a129a974684f 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -153,8 +153,8 @@ MD5Final(unsigned char digest[16], struct MD5Context *ctx)
        byteReverse(ctx->in, 14);
 
        /* Append length in bits and transform */
-       ((__u32 *) ctx->in)[14] = ctx->bits[0];
-       ((__u32 *) ctx->in)[15] = ctx->bits[1];
+       ctx->in32[14] = ctx->bits[0];
+       ctx->in32[15] = ctx->bits[1];
 
        MD5Transform(ctx->buf, (__u32 *) ctx->in);
        byteReverse((unsigned char *) ctx->buf, 4);