xref: /aosp_15_r20/external/compiler-rt/lib/ubsan/ubsan_platform.h (revision 7c3d14c8b49c529e04be81a3ce6f5cc23712e4c6)
1*7c3d14c8STreehugger Robot //===-- ubsan_platform.h ----------------------------------------*- C++ -*-===//
2*7c3d14c8STreehugger Robot //
3*7c3d14c8STreehugger Robot //                     The LLVM Compiler Infrastructure
4*7c3d14c8STreehugger Robot //
5*7c3d14c8STreehugger Robot // This file is distributed under the University of Illinois Open Source
6*7c3d14c8STreehugger Robot // License. See LICENSE.TXT for details.
7*7c3d14c8STreehugger Robot //
8*7c3d14c8STreehugger Robot //===----------------------------------------------------------------------===//
9*7c3d14c8STreehugger Robot //
10*7c3d14c8STreehugger Robot // Defines the platforms which UBSan is supported at.
11*7c3d14c8STreehugger Robot //
12*7c3d14c8STreehugger Robot //===----------------------------------------------------------------------===//
13*7c3d14c8STreehugger Robot #ifndef UBSAN_PLATFORM_H
14*7c3d14c8STreehugger Robot #define UBSAN_PLATFORM_H
15*7c3d14c8STreehugger Robot 
16*7c3d14c8STreehugger Robot // Other platforms should be easy to add, and probably work as-is.
17*7c3d14c8STreehugger Robot #if (defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)) && \
18*7c3d14c8STreehugger Robot     (defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \
19*7c3d14c8STreehugger Robot      defined(__aarch64__) || defined(__mips__) || defined(__powerpc64__) || \
20*7c3d14c8STreehugger Robot      defined(__s390__))
21*7c3d14c8STreehugger Robot # define CAN_SANITIZE_UB 1
22*7c3d14c8STreehugger Robot #elif defined(_WIN32)
23*7c3d14c8STreehugger Robot # define CAN_SANITIZE_UB 1
24*7c3d14c8STreehugger Robot #else
25*7c3d14c8STreehugger Robot # define CAN_SANITIZE_UB 0
26*7c3d14c8STreehugger Robot #endif
27*7c3d14c8STreehugger Robot 
28*7c3d14c8STreehugger Robot #endif
29