From b959dcfcd0319d4311e67fa40ebb407605efc9d9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 12 May 2023 14:47:09 +0200 Subject: Merging upstream version 4.2+20230508. Signed-off-by: Daniel Baumann --- sha1.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sha1.c') diff --git a/sha1.c b/sha1.c index 89b32f4..1e4ad5d 100644 --- a/sha1.c +++ b/sha1.c @@ -229,7 +229,17 @@ sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) +/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 + . + clang versions < 8.0.0 have the same bug. */ +# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ + || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ + && !defined __clang__) \ + || (defined __clang__ && __clang_major__ < 8)) +# define alignof(type) offsetof (struct { char c; type x; }, x) +# else +# define alignof(type) _Alignof(type) +# endif # define UNALIGNED_P(p) (((size_t) p) % alignof (sha1_uint32) != 0) if (UNALIGNED_P (buffer)) while (len > 64) -- cgit v1.2.3