2015-03-27 01:26:04 +08:00
|
|
|
//===-- ubsan_platform.h ----------------------------------------*- C++ -*-===//
|
|
|
|
//
|
2019-01-19 16:50:56 +08:00
|
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
2015-03-27 01:26:04 +08:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
//
|
|
|
|
// Defines the platforms which UBSan is supported at.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef UBSAN_PLATFORM_H
|
|
|
|
#define UBSAN_PLATFORM_H
|
|
|
|
|
|
|
|
// Other platforms should be easy to add, and probably work as-is.
|
Recognize all NetBSD architectures in UBSan
Summary:
Use uniform accessors for Program Pointer,
Stack Pointer and Frame Pointer.
Remove CPU check in UBSan supported platforms
and rely only on the OS type.
This adds NetBSD support in GetPcSpBp() for:
- ARM
- ARM64
- HPPA
- PowerPC/PowerPC64
- SPARC/SPARC64
- MIPS
- DEC Alpha AXP
- DEC VAX
- M68K and M68010
- SH3
- IA64
- OR1K
- RISCV
Sponsored by <The NetBSD Foundation>
Reviewers: joerg, vitalybuka, ro
Reviewed By: vitalybuka
Subscribers: aemerson, jyknight, sdardis, kubamracek, arichardson, llvm-commits, kristof.beyls, fedor.sergeev, #sanitizers
Tags: #sanitizers
Differential Revision: https://reviews.llvm.org/D43021
llvm-svn: 325431
2018-02-17 21:35:09 +08:00
|
|
|
#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || \
|
2018-03-02 15:30:22 +08:00
|
|
|
defined(__NetBSD__) || defined(__OpenBSD__) || \
|
|
|
|
(defined(__sun__) && defined(__svr4__)) || \
|
2018-05-18 08:43:54 +08:00
|
|
|
defined(_WIN32) || defined(__Fuchsia__) || defined(__rtems__)
|
2015-07-02 09:44:34 +08:00
|
|
|
# define CAN_SANITIZE_UB 1
|
2015-03-27 01:26:04 +08:00
|
|
|
#else
|
|
|
|
# define CAN_SANITIZE_UB 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|