diff options
Diffstat (limited to 'gl/lib')
-rw-r--r-- | gl/lib/rand-isaac.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gl/lib/rand-isaac.c b/gl/lib/rand-isaac.c index c03242f66..3462b6d4b 100644 --- a/gl/lib/rand-isaac.c +++ b/gl/lib/rand-isaac.c @@ -35,6 +35,18 @@ #include "rand-isaac.h" #include <limits.h> +#include <string.h> + +/* If the platform supports unaligned access, + then don't have -fsanitize=undefined warn about it. */ +#undef ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED +#if !_STRING_ARCH_unaligned \ + || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) +# define ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED /* empty */ +#else +# define ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED \ + __attribute__ ((__no_sanitize_undefined__)) +#endif /* The minimum of two sizes A and B. */ static inline size_t @@ -81,7 +93,7 @@ ind (isaac_word const *m, isaac_word x) } /* Use and update *S to generate random data to fill RESULT. */ -void +void ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED isaac_refill (struct isaac_state *s, isaac_word result[ISAAC_WORDS]) { /* Caches of S->a and S->b. */ |