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