Control: tag -1 patch Hi,
it turns out that the alignof macro can probably be replaced by a GCC builtin. The attached patch does that. I am not committing this to Salsa right away because I am not 100% sure that __alignof__ (t) is functionally equivalent to the macro that has become illegal in GCC 8: #define alignof(type) offsetof (struct { char c; type x; }, x) Cheers, -Hilko
Index: guymager/md5.cpp =================================================================== --- guymager.orig/md5.cpp +++ guymager/md5.cpp @@ -376,8 +376,7 @@ void MD5Append (t_pMD5Context pContext, if (Len >= 64) { #if !_STRING_ARCH_unaligned - #define alignof(type) offsetof (struct { char c; type x; }, x) - #define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) + #define UNALIGNED_P(p) (((size_t) p) % __alignof__ (uint32_t) != 0) if (UNALIGNED_P (pBuffer)) { Index: guymager/sha1.cpp =================================================================== --- guymager.orig/sha1.cpp +++ guymager/sha1.cpp @@ -263,8 +263,7 @@ void SHA1Append (t_pSHA1Context pContext if (len >= 64) { #if !_STRING_ARCH_unaligned - #define alignof(type) offsetof (struct { char c; type x; }, x) - #define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) + #define UNALIGNED_P(p) (((size_t) p) % __alignof__ (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { Index: guymager/sha256.cpp =================================================================== --- guymager.orig/sha256.cpp +++ guymager/sha256.cpp @@ -812,8 +812,7 @@ void SHA256Append (t_pSHA256Context pCon if (len >= 64) { #if !_STRING_ARCH_unaligned - #define alignof(type) offsetof (struct { char c; type x; }, x) - #define UNALIGNED_P(p) (((size_t) p) % alignof (uint32) != 0) + #define UNALIGNED_P(p) (((size_t) p) % __alignof__ (uint32) != 0) if (UNALIGNED_P (buffer)) { while (len > 64)