forked from OSchip/llvm-project
[ubsan] Enable -fsanitize=vptr on Apple devices and simulators
It seems like an oversight that this check was not always enabled for on-device or device simulator targets. Differential Revision: https://reviews.llvm.org/D51239 llvm-svn: 340849
This commit is contained in:
parent
56e79dd048
commit
9873909b42
|
@ -2258,9 +2258,15 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
|
|||
Res |= SanitizerKind::Fuzzer;
|
||||
Res |= SanitizerKind::FuzzerNoLink;
|
||||
Res |= SanitizerKind::Function;
|
||||
|
||||
// Prior to 10.9, macOS shipped a version of the C++ standard library without
|
||||
// C++11 support. The same is true of iOS prior to version 5. These OS'es are
|
||||
// incompatible with -fsanitize=vptr.
|
||||
if (!(isTargetMacOS() && isMacosxVersionLT(10, 9))
|
||||
&& !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0)))
|
||||
Res |= SanitizerKind::Vptr;
|
||||
|
||||
if (isTargetMacOS()) {
|
||||
if (!isMacosxVersionLT(10, 9))
|
||||
Res |= SanitizerKind::Vptr;
|
||||
if (IsX86_64)
|
||||
Res |= SanitizerKind::Thread;
|
||||
} else if (isTargetIOSSimulator() || isTargetTvOSSimulator()) {
|
||||
|
|
|
@ -423,6 +423,15 @@
|
|||
// RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.8 -fsanitize=vptr %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-DARWIN-OLD
|
||||
// CHECK-VPTR-DARWIN-OLD: unsupported option '-fsanitize=vptr' for target 'x86_64-apple-darwin10'
|
||||
|
||||
// RUN: %clang -target arm-apple-ios4 -fsanitize=vptr %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-IOS-OLD
|
||||
// CHECK-VPTR-IOS-OLD: unsupported option '-fsanitize=vptr' for target 'arm-apple-ios4'
|
||||
|
||||
// RUN: %clang -target aarch64-apple-darwin15.0.0 -fsanitize=vptr %s -### 2>&1
|
||||
// OK
|
||||
|
||||
// RUN: %clang -target x86_64-apple-darwin15.0.0-simulator -fsanitize=vptr %s -### 2>&1
|
||||
// OK
|
||||
|
||||
// RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.9 -fsanitize=alignment,vptr %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-DARWIN-NEW
|
||||
// CHECK-VPTR-DARWIN-NEW: -fsanitize=alignment,vptr
|
||||
|
||||
|
|
Loading…
Reference in New Issue