Enable ubsan on NetBSD
Summary: Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas. Sponsored by <The NetBSD Foundation> Reviewers: joerg, vitalybuka, kcc, filcab, fjricci Reviewed By: fjricci Subscribers: srhines, kubamracek, mgorny, llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D36483 llvm-svn: 310412
This commit is contained in:
parent
c187cabe41
commit
c9bcc8dc9d
|
@ -534,7 +534,7 @@ else()
|
|||
endif()
|
||||
|
||||
if (COMPILER_RT_HAS_SANITIZER_COMMON AND UBSAN_SUPPORTED_ARCH AND
|
||||
OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android|Fuchsia")
|
||||
OS_NAME MATCHES "Darwin|Linux|FreeBSD|NetBSD|Windows|Android|Fuchsia")
|
||||
set(COMPILER_RT_HAS_UBSAN TRUE)
|
||||
else()
|
||||
set(COMPILER_RT_HAS_UBSAN FALSE)
|
||||
|
|
|
@ -14,9 +14,10 @@
|
|||
#define UBSAN_PLATFORM_H
|
||||
|
||||
// Other platforms should be easy to add, and probably work as-is.
|
||||
#if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) && \
|
||||
(defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \
|
||||
defined(__aarch64__) || defined(__mips__) || defined(__powerpc64__) || \
|
||||
#if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || \
|
||||
defined(__NetBSD__)) && \
|
||||
(defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \
|
||||
defined(__aarch64__) || defined(__mips__) || defined(__powerpc64__) || \
|
||||
defined(__s390__))
|
||||
# define CAN_SANITIZE_UB 1
|
||||
#elif defined(_WIN32) || defined(__Fuchsia__)
|
||||
|
|
|
@ -18,11 +18,17 @@
|
|||
# define BYTE_ORDER __DARWIN_BYTE_ORDER
|
||||
# define BIG_ENDIAN __DARWIN_BIG_ENDIAN
|
||||
# define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__NetBSD__)
|
||||
# include <sys/endian.h>
|
||||
# define BYTE_ORDER _BYTE_ORDER
|
||||
# define BIG_ENDIAN _BIG_ENDIAN
|
||||
# define LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||
# ifndef BYTE_ORDER
|
||||
# define BYTE_ORDER _BYTE_ORDER
|
||||
# endif
|
||||
# ifndef BIG_ENDIAN
|
||||
# define BIG_ENDIAN _BIG_ENDIAN
|
||||
# endif
|
||||
# ifndef LITTLE_ENDIAN
|
||||
# define LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||
# endif
|
||||
#elif defined(_WIN32)
|
||||
# define BYTE_ORDER 0
|
||||
# define BIG_ENDIAN 1
|
||||
|
|
|
@ -70,7 +70,7 @@ config.substitutions.append( ("%gmlt ", " ".join(config.debug_info_flags) + " ")
|
|||
config.suffixes = ['.c', '.cc', '.cpp']
|
||||
|
||||
# Check that the host supports UndefinedBehaviorSanitizer tests
|
||||
if config.host_os not in ['Linux', 'Darwin', 'FreeBSD', 'Windows']:
|
||||
if config.host_os not in ['Linux', 'Darwin', 'FreeBSD', 'Windows', 'NetBSD']:
|
||||
config.unsupported = True
|
||||
|
||||
# Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL
|
||||
|
|
Loading…
Reference in New Issue