Skip to content

Commit 6ef90df

Browse files
committed
Add feature for realtime sanitizer, add incompatible sanitizers
1 parent 2da8e98 commit 6ef90df

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

clang/include/clang/Basic/Features.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ FEATURE(memory_sanitizer,
103103
FEATURE(thread_sanitizer, LangOpts.Sanitize.has(SanitizerKind::Thread))
104104
FEATURE(dataflow_sanitizer, LangOpts.Sanitize.has(SanitizerKind::DataFlow))
105105
FEATURE(scudo, LangOpts.Sanitize.hasOneOf(SanitizerKind::Scudo))
106+
FEATURE(realtime_sanitizer, LangOpts.Sanitize.hasOneOf(SanitizerKind::Realtime))
106107
FEATURE(ptrauth_intrinsics, LangOpts.PointerAuthIntrinsics)
107108
FEATURE(ptrauth_calls, LangOpts.PointerAuthCalls)
108109
FEATURE(ptrauth_returns, LangOpts.PointerAuthReturns)

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,10 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
556556
SanitizerKind::Address | SanitizerKind::KernelAddress |
557557
SanitizerKind::HWAddress |
558558
SanitizerKind::KernelHWAddress),
559-
std::make_pair(SanitizerKind::KCFI, SanitizerKind::Function)};
559+
std::make_pair(SanitizerKind::KCFI, SanitizerKind::Function),
560+
std::make_pair(SanitizerKind::Realtime,
561+
SanitizerKind::Address | SanitizerKind::Thread ),
562+
};
560563
// Enable toolchain specific default sanitizers if not explicitly disabled.
561564
SanitizerMask Default = TC.getDefaultSanitizers() & ~AllRemove;
562565

clang/test/Driver/rtsan.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@
3131

3232
// RUN: not %clang --target=i386-pc-openbsd -fsanitize=realtime %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-RTSAN-OPENBSD
3333
// CHECK-RTSAN-OPENBSD: unsupported option '-fsanitize=realtime' for target 'i386-pc-openbsd'
34+
35+
// RUN: not %clang --target=x86_64-linux-gnu -fsanitize=realtime,thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-REALTIME-TSAN
36+
// CHECK-REALTIME-TSAN: error: invalid argument '-fsanitize=realtime' not allowed with '-fsanitize=thread'

0 commit comments

Comments
 (0)