From 42a0bc6d96ea2d2861178ebec98123a94008b94e Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Sat, 16 Sep 2023 19:45:30 +0200 Subject: [PATCH] tests: Add ATTRIBUTE_NO_SANITIZE_INTEGER macro --- doc/apibuild.py | 1 + libxml.h | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/doc/apibuild.py b/doc/apibuild.py index 43ffcc0c..f7e66df0 100755 --- a/doc/apibuild.py +++ b/doc/apibuild.py @@ -63,6 +63,7 @@ ignored_words = { "LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"), "LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"), "ATTRIBUTE_NO_SANITIZE": (3, "macro keyword"), + "ATTRIBUTE_NO_SANITIZE_INTEGER": (0, "macro keyword"), "XML_DEPRECATED": (0, "macro keyword"), "XML_GLOBALS_ALLOC": (0, "macro keyword"), "XML_GLOBALS_ERROR": (0, "macro keyword"), diff --git a/libxml.h b/libxml.h index c3d04bc5..2f72e0ac 100644 --- a/libxml.h +++ b/libxml.h @@ -59,4 +59,12 @@ #define ATTRIBUTE_NO_SANITIZE(arg) #endif +#ifdef __clang__ + #define ATTRIBUTE_NO_SANITIZE_INTEGER \ + ATTRIBUTE_NO_SANITIZE("unsigned-integer-overflow") \ + ATTRIBUTE_NO_SANITIZE("unsigned-shift-base") +#else + #define ATTRIBUTE_NO_SANITIZE_INTEGER +#endif + #endif /* ! __XML_LIBXML_H__ */