diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 16 | ||||
| -rw-r--r-- | clang/lib/Driver/ToolChain.cpp | 1 |
2 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 7127e9789a8..8d4b9fc85de 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -27,7 +27,7 @@ using namespace llvm::opt; static const SanitizerMask NeedsUbsanRt = SanitizerKind::Undefined | SanitizerKind::Integer | SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | - SanitizerKind::CFI; + SanitizerKind::CFI | SanitizerKind::FloatDivideByZero; static const SanitizerMask NeedsUbsanCxxRt = SanitizerKind::Vptr | SanitizerKind::CFI; static const SanitizerMask NotAllowedWithTrap = SanitizerKind::Vptr; @@ -44,10 +44,11 @@ static const SanitizerMask SupportsCoverage = SanitizerKind::Undefined | SanitizerKind::Integer | SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | SanitizerKind::DataFlow | SanitizerKind::Fuzzer | - SanitizerKind::FuzzerNoLink; + SanitizerKind::FuzzerNoLink | SanitizerKind::FloatDivideByZero; static const SanitizerMask RecoverableByDefault = SanitizerKind::Undefined | SanitizerKind::Integer | - SanitizerKind::ImplicitConversion | SanitizerKind::Nullability; + SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | + SanitizerKind::FloatDivideByZero; static const SanitizerMask Unrecoverable = SanitizerKind::Unreachable | SanitizerKind::Return; static const SanitizerMask AlwaysRecoverable = @@ -59,7 +60,7 @@ static const SanitizerMask TrappingSupported = (SanitizerKind::Undefined & ~SanitizerKind::Vptr) | SanitizerKind::UnsignedIntegerOverflow | SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | SanitizerKind::LocalBounds | - SanitizerKind::CFI; + SanitizerKind::CFI | SanitizerKind::FloatDivideByZero; static const SanitizerMask TrappingDefault = SanitizerKind::CFI; static const SanitizerMask CFIClasses = SanitizerKind::CFIVCall | SanitizerKind::CFINVCall | @@ -125,9 +126,10 @@ static void addDefaultBlacklists(const Driver &D, SanitizerMask Kinds, {"tsan_blacklist.txt", SanitizerKind::Thread}, {"dfsan_abilist.txt", SanitizerKind::DataFlow}, {"cfi_blacklist.txt", SanitizerKind::CFI}, - {"ubsan_blacklist.txt", SanitizerKind::Undefined | - SanitizerKind::Integer | - SanitizerKind::Nullability}}; + {"ubsan_blacklist.txt", + SanitizerKind::Undefined | SanitizerKind::Integer | + SanitizerKind::Nullability | + SanitizerKind::FloatDivideByZero}}; for (auto BL : Blacklists) { if (!(Kinds & BL.Mask)) diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 6f5e1916e58..6d6e4c4dd24 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -896,6 +896,7 @@ SanitizerMask ToolChain::getSupportedSanitizers() const { ~SanitizerKind::Function) | (SanitizerKind::CFI & ~SanitizerKind::CFIICall) | SanitizerKind::CFICastStrict | + SanitizerKind::FloatDivideByZero | SanitizerKind::UnsignedIntegerOverflow | SanitizerKind::ImplicitConversion | SanitizerKind::Nullability | SanitizerKind::LocalBounds; |

