diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-05-12 12:47:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-05-12 12:47:09 +0000 |
commit | b959dcfcd0319d4311e67fa40ebb407605efc9d9 (patch) | |
tree | ac91bd6261967ff19b62a1859a4f544112ec4522 /sha1.c | |
parent | Releasing debian version 4.2+20230313-1. (diff) | |
download | mdadm-b959dcfcd0319d4311e67fa40ebb407605efc9d9.tar.xz mdadm-b959dcfcd0319d4311e67fa40ebb407605efc9d9.zip |
Merging upstream version 4.2+20230508.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | sha1.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -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 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=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) |