From 94185e124d75a9d732de29fa642123eaf8605e0c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 28 Jul 2004 20:09:39 +0000 Subject: Don't include or ; suffices with C89 or better. (alignof): New macro, portable to all C89 hosts. (UNALIGNED): Use it. Use uintptr_t if available, and assume everything is unaligned otherwise; this is more portable than assuming 'unsigned long int' will always work. --- lib/sha1.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'lib/sha1.c') diff --git a/lib/sha1.c b/lib/sha1.c index 52766bac5..d2647877e 100644 --- a/lib/sha1.c +++ b/lib/sha1.c @@ -1,7 +1,7 @@ /* sha.c - Functions to compute SHA1 message digest of files or memory blocks according to the NIST specification FIPS-180-1. - Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -28,9 +28,7 @@ #include "sha1.h" -#include - -#include +#include #include #include "unlocked-io.h" @@ -244,12 +242,11 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -/* To check alignment gcc has an appropriate operator. Other - compilers don't. */ -# if __GNUC__ >= 2 -# define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) +# define alignof(type) offsetof (struct { char c; type x; }, x) +# ifdef UINTPTR_MAX +# define UNALIGNED_P(p) (((uintptr_t) p) % alignof (md5_uint32) != 0) # else -# define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) +# define UNALIGNED_P(p) 1 # endif if (UNALIGNED_P (buffer)) while (len > 64) -- cgit v1.2.3-54-g00ecf