clang 22.0.0git
SanitizerArgs.cpp File Reference
#include "clang/Driver/SanitizerArgs.h"
#include "clang/Basic/Sanitizers.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/ToolChain.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SpecialCaseList.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "llvm/TargetParser/RISCVTargetParser.h"
#include "llvm/TargetParser/TargetParser.h"
#include "llvm/Transforms/Instrumentation/AddressSanitizerOptions.h"
#include <memory>
#include "clang/Basic/Sanitizers.def"

Go to the source code of this file.

Macros

#define SANITIZER(NAME, ID)
#define SANITIZER_GROUP(NAME, ID, ALIAS)
#define SANITIZER(NAME, ID)
#define SANITIZER(NAME, ID)
#define SANITIZER_GROUP(NAME, ID, ALIAS)

Enumerations

enum  CoverageFeature {
  CoverageFunc = 1 << 0 , CoverageBB = 1 << 1 , CoverageEdge = 1 << 2 , CoverageIndirCall = 1 << 3 ,
  CoverageTraceBB = 1 << 4 , CoverageTraceCmp = 1 << 5 , CoverageTraceDiv = 1 << 6 , CoverageTraceGep = 1 << 7 ,
  Coverage8bitCounters = 1 << 8 , CoverageTracePC = 1 << 9 , CoverageTracePCGuard = 1 << 10 , CoverageNoPrune = 1 << 11 ,
  CoverageInline8bitCounters = 1 << 12 , CoveragePCTable = 1 << 13 , CoverageStackDepth = 1 << 14 , CoverageInlineBoolFlag = 1 << 15 ,
  CoverageTraceLoads = 1 << 16 , CoverageTraceStores = 1 << 17 , CoverageControlFlow = 1 << 18
}
enum  BinaryMetadataFeature { BinaryMetadataCovered = 1 << 0 , BinaryMetadataAtomics = 1 << 1 , BinaryMetadataUAR = 1 << 2 }

Functions

static SanitizerMask parseArgValues (const Driver &D, const llvm::opt::Arg *A, bool DiagnoseErrors)
 Parse a -fsanitize= or -fno-sanitize= argument's values, diagnosing any invalid components.
static void parseArgCutoffs (const Driver &D, const llvm::opt::Arg *A, bool DiagnoseErrors, SanitizerMaskCutoffs &Cutoffs)
 Parse a -fsanitize=<sanitizer1>=<value1>... or -fno-sanitize= argument's values, diagnosing any invalid components.
static int parseCoverageFeatures (const Driver &D, const llvm::opt::Arg *A, bool DiagnoseErrors)
 Parse -f(no-)?sanitize-coverage= flag values, diagnosing any invalid components.
static int parseOverflowPatternExclusionValues (const Driver &D, const llvm::opt::Arg *A, bool DiagnoseErrors)
 Parse -fsanitize-undefined-ignore-overflow-pattern= flag values, diagnosing any invalid values.
static int parseBinaryMetadataFeatures (const Driver &D, const llvm::opt::Arg *A, bool DiagnoseErrors)
 Parse -f(no-)?sanitize-metadata= flag values, diagnosing any invalid components.
static std::string lastArgumentForMask (const Driver &D, const llvm::opt::ArgList &Args, SanitizerMask Mask)
 Produce an argument string from ArgList Args, which shows how it provides some sanitizer kind from Mask.
static std::string describeSanitizeArg (const llvm::opt::Arg *A, SanitizerMask Mask)
 Produce an argument string from argument A, which shows how it provides a value in Mask.
static std::string toString (const clang::SanitizerSet &Sanitizers)
 Produce a string containing comma-separated names of sanitizers in Sanitizers set.
static std::string toStringWithGroups (const clang::SanitizerSet &Sanitizers)
 Produce a string containing comma-separated names of sanitizers and sanitizer groups in Sanitizers set.
static bool isExecuteOnlyTarget (const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
 Return true if an execute-only target disallows data access to code sections.
static void validateSpecialCaseListFormat (const Driver &D, std::vector< std::string > &SCLFiles, unsigned MalformedSCLErrorDiagID, bool DiagnoseErrors)
static void addDefaultIgnorelists (const Driver &D, SanitizerMask Kinds, std::vector< std::string > &IgnorelistFiles, bool DiagnoseErrors)
static void parseSpecialCaseListArg (const Driver &D, const llvm::opt::ArgList &Args, std::vector< std::string > &SCLFiles, llvm::opt::OptSpecifier SCLOptionID, llvm::opt::OptSpecifier NoSCLOptionID, unsigned MalformedSCLErrorDiagID, bool DiagnoseErrors)
 Parse -f(no-)?sanitize-(coverage-)?(allow|ignore)list argument's values, diagnosing any invalid file paths and validating special case list format.
static SanitizerMask setGroupBits (SanitizerMask Kinds)
 Sets group bits for every group that has at least one representative already enabled in Kinds.
static SanitizerMask parseSanitizeArgs (const Driver &D, const llvm::opt::ArgList &Args, bool DiagnoseErrors, SanitizerMask Default, SanitizerMask AlwaysIn, SanitizerMask AlwaysOut, int OptInID, int OptOutID)
static SanitizerMask parseSanitizeTrapArgs (const Driver &D, const llvm::opt::ArgList &Args, bool DiagnoseErrors)
static SanitizerMaskCutoffs parseSanitizeSkipHotCutoffArgs (const Driver &D, const llvm::opt::ArgList &Args, bool DiagnoseErrors)
static std::string toString (const clang::SanitizerMaskCutoffs &Cutoffs)
static void addSpecialCaseListOpt (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const char *SCLOptFlag, const std::vector< std::string > &SCLFiles)
static void addIncludeLinkerOption (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, StringRef SymbolName)
static bool hasTargetFeatureMTE (const llvm::opt::ArgStringList &CmdArgs)

Variables

static const SanitizerMask NeedsUbsanRt
static const SanitizerMask NeedsUbsanCxxRt
static const SanitizerMask NotAllowedWithTrap = SanitizerKind::Vptr
static const SanitizerMask NotAllowedWithMinimalRuntime = SanitizerKind::Vptr
static const SanitizerMask NotAllowedWithExecuteOnly
static const SanitizerMask NeedsUnwindTables
static const SanitizerMask SupportsCoverage
static const SanitizerMask RecoverableByDefault
static const SanitizerMask Unrecoverable
static const SanitizerMask AlwaysRecoverable
static const SanitizerMask NeedsLTO = SanitizerKind::CFI
static const SanitizerMask TrappingSupported
static const SanitizerMask MergeDefault
static const SanitizerMask TrappingDefault
static const SanitizerMask AnnotateDebugInfoDefault
static const SanitizerMask CFIClasses
static const SanitizerMask CompatibleWithMinimalRuntime

Macro Definition Documentation

◆ SANITIZER [1/3]

#define SANITIZER ( NAME,
ID )

◆ SANITIZER [2/3]

#define SANITIZER ( NAME,
ID )
Value:
if (Sanitizers.has(SanitizerKind::ID)) { \
if (!Res.empty()) \
Res += ","; \
Res += NAME; \
}

◆ SANITIZER [3/3]

#define SANITIZER ( NAME,
ID )
Value:
if (Sanitizers.has(SanitizerKind::ID)) { \
if (!Res.empty()) \
Res += ","; \
Res += NAME; \
}

◆ SANITIZER_GROUP [1/2]

#define SANITIZER_GROUP ( NAME,
ID,
ALIAS )
Value:
if (Kinds & SanitizerKind::ID) \
Kinds |= SanitizerKind::ID##Group;

◆ SANITIZER_GROUP [2/2]

#define SANITIZER_GROUP ( NAME,
ID,
ALIAS )
Value:
SANITIZER(NAME, ID##Group)
#define SANITIZER(NAME, ID)
Definition Sanitizers.h:139

Enumeration Type Documentation

◆ BinaryMetadataFeature

Enumerator
BinaryMetadataCovered 
BinaryMetadataAtomics 
BinaryMetadataUAR 

Definition at line 111 of file SanitizerArgs.cpp.

◆ CoverageFeature

Enumerator
CoverageFunc 
CoverageBB 
CoverageEdge 
CoverageIndirCall 
CoverageTraceBB 
CoverageTraceCmp 
CoverageTraceDiv 
CoverageTraceGep 
Coverage8bitCounters 
CoverageTracePC 
CoverageTracePCGuard 
CoverageNoPrune 
CoverageInline8bitCounters 
CoveragePCTable 
CoverageStackDepth 
CoverageInlineBoolFlag 
CoverageTraceLoads 
CoverageTraceStores 
CoverageControlFlow 

Definition at line 89 of file SanitizerArgs.cpp.

Function Documentation

◆ addDefaultIgnorelists()

void addDefaultIgnorelists ( const Driver & D,
SanitizerMask Kinds,
std::vector< std::string > & IgnorelistFiles,
bool DiagnoseErrors )
static

◆ addIncludeLinkerOption()

void addIncludeLinkerOption ( const ToolChain & TC,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
StringRef SymbolName )
static

◆ addSpecialCaseListOpt()

void addSpecialCaseListOpt ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const char * SCLOptFlag,
const std::vector< std::string > & SCLFiles )
static

Definition at line 1222 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::addArgs().

◆ describeSanitizeArg()

std::string describeSanitizeArg ( const llvm::opt::Arg * A,
SanitizerMask Mask )
static

Produce an argument string from argument A, which shows how it provides a value in Mask.

For instance, the argument "-fsanitize=address,alignment" with mask NeedsUbsanRt would produce "-fsanitize=alignment".

Definition at line 1717 of file SanitizerArgs.cpp.

References clang::expandSanitizerGroups(), and clang::parseSanitizerValue().

Referenced by lastArgumentForMask(), and clang::driver::SanitizerArgs::SanitizerArgs().

◆ hasTargetFeatureMTE()

bool hasTargetFeatureMTE ( const llvm::opt::ArgStringList & CmdArgs)
static

Definition at line 1247 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::addArgs().

◆ isExecuteOnlyTarget()

bool isExecuteOnlyTarget ( const llvm::Triple & Triple,
const llvm::opt::ArgList & Args )
static

Return true if an execute-only target disallows data access to code sections.

Definition at line 169 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ lastArgumentForMask()

std::string lastArgumentForMask ( const Driver & D,
const llvm::opt::ArgList & Args,
SanitizerMask Mask )
static

Produce an argument string from ArgList Args, which shows how it provides some sanitizer kind from Mask.

For example, the argument list "-fsanitize=thread,vptr -fsanitize=address" with mask NeedsUbsanRt would produce "-fsanitize=vptr".

Definition at line 1697 of file SanitizerArgs.cpp.

References describeSanitizeArg(), clang::expandSanitizerGroups(), and parseArgValues().

Referenced by clang::driver::SanitizerArgs::addArgs(), and clang::driver::SanitizerArgs::SanitizerArgs().

◆ parseArgCutoffs()

void parseArgCutoffs ( const Driver & D,
const llvm::opt::Arg * A,
bool DiagnoseErrors,
SanitizerMaskCutoffs & Cutoffs )
static

Parse a -fsanitize=<sanitizer1>=<value1>... or -fno-sanitize= argument's values, diagnosing any invalid components.

Cutoffs are stored in the passed parameter.

Definition at line 1597 of file SanitizerArgs.cpp.

References clang::driver::Driver::Diag(), and clang::parseSanitizerWeightedValue().

Referenced by parseSanitizeSkipHotCutoffArgs().

◆ parseArgValues()

SanitizerMask parseArgValues ( const Driver & D,
const llvm::opt::Arg * A,
bool DiagnoseErrors )
static

Parse a -fsanitize= or -fno-sanitize= argument's values, diagnosing any invalid components.

Returns a SanitizerMask.

Definition at line 1562 of file SanitizerArgs.cpp.

References clang::driver::Driver::Diag(), and clang::parseSanitizerValue().

Referenced by lastArgumentForMask(), parseSanitizeArgs(), and clang::driver::SanitizerArgs::SanitizerArgs().

◆ parseBinaryMetadataFeatures()

int parseBinaryMetadataFeatures ( const Driver & D,
const llvm::opt::Arg * A,
bool DiagnoseErrors )
static

Parse -f(no-)?sanitize-metadata= flag values, diagnosing any invalid components.

Returns OR of members of BinaryMetadataFeature enumeration.

Definition at line 1674 of file SanitizerArgs.cpp.

References BinaryMetadataAtomics, BinaryMetadataCovered, BinaryMetadataUAR, and clang::driver::Driver::Diag().

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ parseCoverageFeatures()

int parseCoverageFeatures ( const Driver & D,
const llvm::opt::Arg * A,
bool DiagnoseErrors )
static

◆ parseOverflowPatternExclusionValues()

int parseOverflowPatternExclusionValues ( const Driver & D,
const llvm::opt::Arg * A,
bool DiagnoseErrors )
static

Parse -fsanitize-undefined-ignore-overflow-pattern= flag values, diagnosing any invalid values.

Returns a mask of excluded overflow patterns.

Definition at line 1613 of file SanitizerArgs.cpp.

References clang::LangOptionsBase::AddSignedOverflowTest, clang::LangOptionsBase::AddUnsignedOverflowTest, clang::LangOptionsBase::All, clang::driver::Driver::Diag(), clang::LangOptionsBase::NegUnsignedConst, clang::LangOptionsBase::None, and clang::LangOptionsBase::PostDecrInWhile.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ parseSanitizeArgs()

SanitizerMask parseSanitizeArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
bool DiagnoseErrors,
SanitizerMask Default,
SanitizerMask AlwaysIn,
SanitizerMask AlwaysOut,
int OptInID,
int OptOutID )
static

◆ parseSanitizeSkipHotCutoffArgs()

SanitizerMaskCutoffs parseSanitizeSkipHotCutoffArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
bool DiagnoseErrors )
static

Definition at line 339 of file SanitizerArgs.cpp.

References parseArgCutoffs().

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ parseSanitizeTrapArgs()

SanitizerMask parseSanitizeTrapArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
bool DiagnoseErrors )
static

◆ parseSpecialCaseListArg()

void parseSpecialCaseListArg ( const Driver & D,
const llvm::opt::ArgList & Args,
std::vector< std::string > & SCLFiles,
llvm::opt::OptSpecifier SCLOptionID,
llvm::opt::OptSpecifier NoSCLOptionID,
unsigned MalformedSCLErrorDiagID,
bool DiagnoseErrors )
static

Parse -f(no-)?sanitize-(coverage-)?(allow|ignore)list argument's values, diagnosing any invalid file paths and validating special case list format.

Definition at line 231 of file SanitizerArgs.cpp.

References clang::driver::Driver::Diag(), clang::driver::Driver::getVFS(), and validateSpecialCaseListFormat().

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ setGroupBits()

SanitizerMask setGroupBits ( SanitizerMask Kinds)
static

Sets group bits for every group that has at least one representative already enabled in Kinds.

Definition at line 260 of file SanitizerArgs.cpp.

Referenced by parseSanitizeTrapArgs(), and clang::driver::SanitizerArgs::SanitizerArgs().

◆ toString() [1/2]

std::string toString ( const clang::SanitizerMaskCutoffs & Cutoffs)
static

Definition at line 1203 of file SanitizerArgs.cpp.

References clang::serializeSanitizerMaskCutoffs().

◆ toString() [2/2]

std::string toString ( const clang::SanitizerSet & Sanitizers)
static

Produce a string containing comma-separated names of sanitizers in Sanitizers set.

Definition at line 1191 of file SanitizerArgs.cpp.

Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::SemaOpenMP::ActOnOMPArraySectionExpr(), clang::SemaOpenMP::ActOnOMPArrayShapingExpr(), clang::SemaOpenMP::ActOnOpenMPCriticalDirective(), clang::Sema::ActOnPragmaClangSection(), clang::driver::SanitizerArgs::addArgs(), clang::format::JavaScriptImportSorter::analyze(), AnalyzeBitFieldAssignment(), clang::ast_matchers::AST_MATCHER_P(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), clang::driver::Driver::BuildJobs(), BuiltinAlignment(), clang::Sema::BuiltinConstantArgRange(), CheckArrayDesignatorExpr(), checkCaseValue(), checkCodeSegName(), CheckedIntArithmetic(), clang::Sema::CheckEnumConstant(), CheckForDuplicateEnumValues(), clang::Sema::CheckImplicitConversion(), clang::Sema::CheckLoopHintExpr(), checkPositiveIntArgument(), clang::Sema::checkSectionName(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::checkUInt32Argument(), compileModuleAndReadASTBehindLock(), DefineTypeSize(), diagnoseWellFormedUnsatisfiedConstraintExpr(), diagnoseXorMisusedAsPow(), DiagTemplateArg(), clang::ento::Range::dump(), clang::ento::CheckerInfo::dumpToStream(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), EvaluateDirectiveSubExpr(), getModuleContextHash(), clang::CompilerInvocation::getModuleHash(), clang::threadSafety::getSourceLiteralString(), handlePatchableFunctionEntryAttr(), clang::tooling::RefactoringASTConsumer::HandleTranslationUnit(), clang::interp::interp__builtin_memcpy(), IsStructurallyEquivalent(), clang::Preprocessor::LexEmbedParameters(), makeAttributeArgExpr(), makeLaunchBoundsArgExpr(), clang::operator<<(), PrettyPrintInRange(), clang::format::internal::reformat(), clang::ento::CheckerManager::runCheckersForEvalCall(), clang::driver::SanitizerArgs::SanitizerArgs(), sharedInstantiateConstructorDestructorAttr(), clang::format::sortCppIncludes(), clang::format::sortJavaImports(), toString(), clang::Sema::tryToFixVariablyModifiedVarType(), clang::Sema::VerifyBitField(), clang::TextNodeDumper::VisitIntegerLiteral(), clang::Interpreter::~Interpreter(), and clang::SavedStreamPosition::~SavedStreamPosition().

◆ toStringWithGroups()

std::string toStringWithGroups ( const clang::SanitizerSet & Sanitizers)
static

Produce a string containing comma-separated names of sanitizers and sanitizer groups in Sanitizers set.

Definition at line 1209 of file SanitizerArgs.cpp.

Referenced by parseSanitizeArgs().

◆ validateSpecialCaseListFormat()

void validateSpecialCaseListFormat ( const Driver & D,
std::vector< std::string > & SCLFiles,
unsigned MalformedSCLErrorDiagID,
bool DiagnoseErrors )
static

Variable Documentation

◆ AlwaysRecoverable

const SanitizerMask AlwaysRecoverable
static
Initial value:
= SanitizerKind::KernelAddress |
SanitizerKind::KernelHWAddress |
SanitizerKind::KCFI

Definition at line 66 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ AnnotateDebugInfoDefault

const SanitizerMask AnnotateDebugInfoDefault
static

Definition at line 79 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ CFIClasses

const SanitizerMask CFIClasses
static
Initial value:
=
SanitizerKind::CFIVCall | SanitizerKind::CFINVCall |
SanitizerKind::CFIMFCall | SanitizerKind::CFIDerivedCast |
SanitizerKind::CFIUnrelatedCast

Definition at line 80 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::addArgs().

◆ CompatibleWithMinimalRuntime

const SanitizerMask CompatibleWithMinimalRuntime
static
Initial value:
=
TrappingSupported | SanitizerKind::Scudo | SanitizerKind::ShadowCallStack |
SanitizerKind::MemtagStack | SanitizerKind::MemtagHeap |
SanitizerKind::MemtagGlobals | SanitizerKind::KCFI
static const SanitizerMask TrappingSupported

Definition at line 84 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ MergeDefault

const SanitizerMask MergeDefault
static
Initial value:
=
SanitizerKind::Undefined | SanitizerKind::Vptr

Definition at line 75 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ NeedsLTO

const SanitizerMask NeedsLTO = SanitizerKind::CFI
static

◆ NeedsUbsanCxxRt

const SanitizerMask NeedsUbsanCxxRt
static
Initial value:
=
SanitizerKind::Vptr | SanitizerKind::CFI

Definition at line 35 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::needsUbsanCXXRt(), and clang::driver::SanitizerArgs::SanitizerArgs().

◆ NeedsUbsanRt

const SanitizerMask NeedsUbsanRt
static
Initial value:
=
SanitizerKind::Undefined | SanitizerKind::Integer |
SanitizerKind::LocalBounds | SanitizerKind::ImplicitConversion |
SanitizerKind::Nullability | SanitizerKind::CFI |
SanitizerKind::FloatDivideByZero | SanitizerKind::ObjCCast |
SanitizerKind::Vptr

Definition at line 29 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::needsUbsanRt().

◆ NeedsUnwindTables

const SanitizerMask NeedsUnwindTables
static
Initial value:
=
SanitizerKind::Address | SanitizerKind::HWAddress | SanitizerKind::Type |
SanitizerKind::Thread | SanitizerKind::Memory | SanitizerKind::DataFlow |
SanitizerKind::NumericalStability

Definition at line 41 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::needsUnwindTables().

◆ NotAllowedWithExecuteOnly

const SanitizerMask NotAllowedWithExecuteOnly
static
Initial value:
=
SanitizerKind::Function | SanitizerKind::KCFI

Definition at line 39 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ NotAllowedWithMinimalRuntime

const SanitizerMask NotAllowedWithMinimalRuntime = SanitizerKind::Vptr
static

Definition at line 38 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ NotAllowedWithTrap

const SanitizerMask NotAllowedWithTrap = SanitizerKind::Vptr
static

Definition at line 37 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ RecoverableByDefault

const SanitizerMask RecoverableByDefault
static
Initial value:
=
SanitizerKind::Undefined | SanitizerKind::Integer |
SanitizerKind::ImplicitConversion | SanitizerKind::Nullability |
SanitizerKind::FloatDivideByZero | SanitizerKind::ObjCCast |
SanitizerKind::Vptr

Definition at line 59 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ SupportsCoverage

const SanitizerMask SupportsCoverage
static
Initial value:
=
SanitizerKind::Address | SanitizerKind::HWAddress |
SanitizerKind::KernelAddress | SanitizerKind::KernelHWAddress |
SanitizerKind::Type | SanitizerKind::MemtagStack |
SanitizerKind::MemtagHeap | SanitizerKind::MemtagGlobals |
SanitizerKind::Memory | SanitizerKind::KernelMemory | SanitizerKind::Leak |
SanitizerKind::Undefined | SanitizerKind::Integer | SanitizerKind::Bounds |
SanitizerKind::ImplicitConversion | SanitizerKind::Nullability |
SanitizerKind::DataFlow | SanitizerKind::Fuzzer |
SanitizerKind::FuzzerNoLink | SanitizerKind::FloatDivideByZero |
SanitizerKind::SafeStack | SanitizerKind::ShadowCallStack |
SanitizerKind::Thread | SanitizerKind::ObjCCast | SanitizerKind::KCFI |
SanitizerKind::NumericalStability | SanitizerKind::Vptr |
SanitizerKind::CFI

Definition at line 45 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().

◆ TrappingDefault

const SanitizerMask TrappingDefault
static
Initial value:
=
SanitizerKind::CFI | SanitizerKind::LocalBounds

Definition at line 77 of file SanitizerArgs.cpp.

Referenced by parseSanitizeTrapArgs().

◆ TrappingSupported

const SanitizerMask TrappingSupported
static
Initial value:
=
SanitizerKind::Undefined | SanitizerKind::Integer |
SanitizerKind::ImplicitConversion | SanitizerKind::Nullability |
SanitizerKind::LocalBounds | SanitizerKind::CFI |
SanitizerKind::FloatDivideByZero | SanitizerKind::ObjCCast

Definition at line 70 of file SanitizerArgs.cpp.

Referenced by parseSanitizeTrapArgs().

◆ Unrecoverable

const SanitizerMask Unrecoverable
static
Initial value:
=
SanitizerKind::Unreachable | SanitizerKind::Return

Definition at line 64 of file SanitizerArgs.cpp.

Referenced by clang::driver::SanitizerArgs::SanitizerArgs().