| Upstream-Status: pending |
| gcc 4.7 does not like pointer conversion, so have a void * tmp var to work |
| around following compilation issue. |
| |
| Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> |
| 2011/07/07 |
| |
| | md5.c: In function 'md5_finish_ctx': |
| | md5.c:108:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
| | md5.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
| | cc1: all warnings being treated as errors |
| | |
| | make[2]: *** [md5.o] Error 1 |
| | make[2]: *** Waiting for unfinished jobs.... |
| | sha1.c: In function 'sha1_finish_ctx': |
| | sha1.c:109:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
| | sha1.c:111:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
| | cc1: all warnings being treated as errors |
| | |
| | make[2]: *** [sha1.o] Error 1 |
| |
| Index: elfutils-0.148/lib/md5.c |
| =================================================================== |
| --- elfutils-0.148.orig/lib/md5.c |
| +++ elfutils-0.148/lib/md5.c |
| @@ -95,6 +95,7 @@ md5_finish_ctx (ctx, resbuf) |
| /* Take yet unprocessed bytes into account. */ |
| md5_uint32 bytes = ctx->buflen; |
| size_t pad; |
| + void * tmp; |
| |
| /* Now count remaining bytes. */ |
| ctx->total[0] += bytes; |
| @@ -105,9 +106,10 @@ md5_finish_ctx (ctx, resbuf) |
| memcpy (&ctx->buffer[bytes], fillbuf, pad); |
| |
| /* Put the 64-bit file length in *bits* at the end of the buffer. */ |
| - *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); |
| - *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | |
| - (ctx->total[0] >> 29)); |
| + tmp = &ctx->buffer[bytes + pad]; |
| + *(md5_uint32 *) tmp = SWAP (ctx->total[0] << 3); |
| + tmp = &ctx->buffer[bytes + pad + 4]; |
| + *(md5_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); |
| |
| /* Process last bytes. */ |
| md5_process_block (ctx->buffer, bytes + pad + 8, ctx); |
| Index: elfutils-0.148/lib/sha1.c |
| =================================================================== |
| --- elfutils-0.148.orig/lib/sha1.c |
| +++ elfutils-0.148/lib/sha1.c |
| @@ -96,6 +96,7 @@ sha1_finish_ctx (ctx, resbuf) |
| /* Take yet unprocessed bytes into account. */ |
| sha1_uint32 bytes = ctx->buflen; |
| size_t pad; |
| + void * tmp; |
| |
| /* Now count remaining bytes. */ |
| ctx->total[0] += bytes; |
| @@ -106,9 +107,10 @@ sha1_finish_ctx (ctx, resbuf) |
| memcpy (&ctx->buffer[bytes], fillbuf, pad); |
| |
| /* Put the 64-bit file length in *bits* at the end of the buffer. */ |
| - *(sha1_uint32 *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) | |
| - (ctx->total[0] >> 29)); |
| - *(sha1_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3); |
| + tmp = &ctx->buffer[bytes + pad]; |
| + *(sha1_uint32 *) tmp = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); |
| + tmp = &ctx->buffer[bytes + pad + 4]; |
| + *(sha1_uint32 *) tmp = SWAP (ctx->total[0] << 3); |
| |
| /* Process last bytes. */ |
| sha1_process_block (ctx->buffer, bytes + pad + 8, ctx); |