Deleted Added
full compact
23c23,24
< * Macros to extract possibly-unaligned big-endian integral values.
---
> * For 8-bit values; provided for the sake of completeness. Byte order
> * isn't relevant, and alignment isn't an issue.
24a26,64
> #define EXTRACT_8BITS(p) (*(p))
> #define EXTRACT_LE_8BITS(p) (*(p))
>
> /*
> * Inline functions or macros to extract possibly-unaligned big-endian
> * integral values.
> */
> #include "funcattrs.h"
>
> /*
> * If we have versions of GCC or Clang that support an __attribute__
> * to say "if we're building with unsigned behavior sanitization,
> * don't complain about undefined behavior in this function", we
> * label these functions with that attribute - we *know* it's undefined
> * in the C standard, but we *also* know it does what we want with
> * the ISA we're targeting and the compiler we're using.
> *
> * For GCC 4.9.0 and later, we use __attribute__((no_sanitize_undefined));
> * pre-5.0 GCC doesn't have __has_attribute, and I'm not sure whether
> * GCC or Clang first had __attribute__((no_sanitize(XXX)).
> *
> * For Clang, we check for __attribute__((no_sanitize(XXX)) with
> * __has_attribute, as there are versions of Clang that support
> * __attribute__((no_sanitize("undefined")) but don't support
> * __attribute__((no_sanitize_undefined)).
> *
> * We define this here, rather than in funcattrs.h, because we
> * only want it used here, we don't want it to be broadly used.
> * (Any printer will get this defined, but this should at least
> * make it harder for people to find.)
> */
> #if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 409)
> #define UNALIGNED_OK __attribute__((no_sanitize_undefined))
> #elif __has_attribute(no_sanitize)
> #define UNALIGNED_OK __attribute__((no_sanitize("undefined")))
> #else
> #define UNALIGNED_OK
> #endif
>
34c74
< * This is a GCC-compatible compiler and we have __attribute__, which
---
> * This is a GCC-compatible compiler and we have __attribute__, which
91c131
< static inline uint16_t
---
> UNALIGNED_OK static inline uint16_t
97c137
< static inline uint32_t
---
> UNALIGNED_OK static inline uint32_t
103c143
< static inline uint64_t
---
> UNALIGNED_OK static inline uint64_t
141c181
< static inline uint16_t
---
> static inline uint16_t UNALIGNED_OK
147c187
< static inline uint32_t
---
> static inline uint32_t UNALIGNED_OK
153c193
< static inline uint64_t
---
> static inline uint64_t UNALIGNED_OK
196d235
< #define EXTRACT_LE_8BITS(p) (*(p))
244a284,286
>
> #define ND_TTEST_128BITS(p) ND_TTEST2(*(p), 16)
> #define ND_TCHECK_128BITS(p) ND_TCHECK2(*(p), 16)