#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.
enum CoverageFeature {Args
, which shows how it provides some sanitizer kind from Mask
.
A
, which shows how it provides a value in Mask
.
Sanitizers
set.
Kinds
.
if (Sanitizers.has(SanitizerKind::ID)) { \
if (!Res.empty()) \
Res += ","; \
Res += NAME; \
}
◆ SANITIZER_GROUP #define SANITIZER_GROUP ( NAME, ID, ALIAS ) Value:if (Kinds & SanitizerKind::ID) \
Kinds |= SanitizerKind::ID##Group;
◆ BinaryMetadataFeature Enumerator BinaryMetadataCovered BinaryMetadataAtomics BinaryMetadataUARDefinition at line 106 of file SanitizerArgs.cpp.
◆ CoverageFeature Enumerator CoverageFunc CoverageBB CoverageEdge CoverageIndirCall CoverageTraceBB CoverageTraceCmp CoverageTraceDiv CoverageTraceGep Coverage8bitCounters CoverageTracePC CoverageTracePCGuard CoverageNoPrune CoverageInline8bitCounters CoveragePCTable CoverageStackDepth CoverageInlineBoolFlag CoverageTraceLoads CoverageTraceStores CoverageControlFlowDefinition at line 84 of file SanitizerArgs.cpp.
◆ addDefaultIgnorelists() static void addDefaultIgnorelists ( const Driver & D, SanitizerMask Kinds, std::vector< std::string > & IgnorelistFiles, bool DiagnoseErrors ) static ◆ addIncludeLinkerOption() static void addIncludeLinkerOption ( const ToolChain & TC, const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs, StringRef SymbolName ) static ◆ addSpecialCaseListOpt() static void addSpecialCaseListOpt ( const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs, const char * SCLOptFlag, const std::vector< std::string > & SCLFiles ) static ◆ describeSanitizeArg() std::string describeSanitizeArg ( const llvm::opt::Arg * A, SanitizerMask Mask ) static ◆ hasTargetFeatureMTE() static bool hasTargetFeatureMTE ( const llvm::opt::ArgStringList & CmdArgs ) static ◆ isExecuteOnlyTarget() static bool isExecuteOnlyTarget ( const llvm::Triple & Triple, const llvm::opt::ArgList & Args ) static ◆ lastArgumentForMask() std::string lastArgumentForMask ( const Driver & D, const llvm::opt::ArgList & Args, SanitizerMask Mask ) static ◆ parseArgCutoffs() ◆ parseArgValues() ◆ parseBinaryMetadataFeatures() int parseBinaryMetadataFeatures ( const Driver & D, const llvm::opt::Arg * A, bool DiagnoseErrors ) static ◆ parseCoverageFeatures() int parseCoverageFeatures ( const Driver & D, const llvm::opt::Arg * A, bool DiagnoseErrors ) staticParse -f(no-)?sanitize-coverage= flag values, diagnosing any invalid components.
Returns OR of members of CoverageFeature
enumeration.
Definition at line 1578 of file SanitizerArgs.cpp.
References Coverage8bitCounters, CoverageBB, CoverageControlFlow, CoverageEdge, CoverageFunc, CoverageIndirCall, CoverageInline8bitCounters, CoverageInlineBoolFlag, CoverageNoPrune, CoveragePCTable, CoverageStackDepth, CoverageTraceBB, CoverageTraceCmp, CoverageTraceDiv, CoverageTraceGep, CoverageTraceLoads, CoverageTracePC, CoverageTracePCGuard, CoverageTraceStores, and D.
Referenced by clang::driver::SanitizerArgs::SanitizerArgs().
◆ parseOverflowPatternExclusionValues() static int parseOverflowPatternExclusionValues ( const Driver & D, const llvm::opt::Arg * A, bool DiagnoseErrors ) static ◆ parseSanitizeArgs() ◆ parseSanitizeSkipHotCutoffArgs() ◆ parseSanitizeTrapArgs() static SanitizerMask parseSanitizeTrapArgs ( const Driver & D, const llvm::opt::ArgList & Args, bool DiagnoseErrors ) static ◆ parseSpecialCaseListArg() 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 ) static ◆ setGroupBits() ◆ toString() [1/2] ◆ toString() [2/2]Produce a string containing comma-separated names of sanitizers in Sanitizers
set.
Definition at line 1166 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::interp::AddSubMulHelper(), clang::format::JavaScriptImportSorter::analyze(), AnalyzeBitFieldAssignment(), clang::ast_matchers::AST_MATCHER_P(), clang::Sema::BuildArrayType(), clang::Sema::BuildCXXNew(), 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(), DefineTypeSize(), diagnoseWellFormedUnsatisfiedConstraintExpr(), diagnoseXorMisusedAsPow(), DiagTemplateArg(), clang::ento::Range::dump(), clang::ento::CheckerInfo::dumpToStream(), EvaluateDirectiveSubExpr(), getModuleContextHash(), clang::CompilerInvocation::getModuleHash(), clang::threadSafety::getSourceLiteralString(), clang::tooling::RefactoringASTConsumer::HandleTranslationUnit(), clang::interp::IncDecHelper(), clang::interp::interp__builtin_memcpy(), IsStructurallyEquivalent(), clang::Preprocessor::LexEmbedParameters(), makeLaunchBoundsArgExpr(), clang::interp::Neg(), clang::operator<<(), parseSanitizeArgs(), PrettyPrintInRange(), clang::format::internal::reformat(), clang::ento::CheckerManager::runCheckersForEvalCall(), clang::driver::SanitizerArgs::SanitizerArgs(), clang::format::sortCppIncludes(), clang::format::sortJavaImports(), toString(), clang::Sema::tryToFixVariablyModifiedVarType(), clang::Sema::VerifyBitField(), clang::TextNodeDumper::VisitIntegerLiteral(), clang::Interpreter::~Interpreter(), and clang::SavedStreamPosition::~SavedStreamPosition().
◆ validateSpecialCaseListFormat() static void validateSpecialCaseListFormat ( const Driver & D, std::vector< std::string > & SCLFiles, unsigned MalformedSCLErrorDiagID, bool DiagnoseErrors ) static ◆ AlwaysRecoverable ◆ CFIClasses ◆ CompatibleWithMinimalRuntime ◆ MergeDefault ◆ NeedsLTO ◆ NeedsUbsanCxxRt ◆ NeedsUbsanRt Initial value:=
SanitizerKind::Undefined | SanitizerKind::Integer |
SanitizerKind::LocalBounds | SanitizerKind::ImplicitConversion |
SanitizerKind::Nullability | SanitizerKind::CFI |
SanitizerKind::FloatDivideByZero | SanitizerKind::ObjCCast
Definition at line 29 of file SanitizerArgs.cpp.
Referenced by clang::driver::SanitizerArgs::needsUbsanRt().
◆ NeedsUnwindTables ◆ NotAllowedWithExecuteOnly ◆ NotAllowedWithMinimalRuntime const SanitizerMask NotAllowedWithMinimalRuntime = SanitizerKind::Vptr static ◆ NotAllowedWithTrap ◆ RecoverableByDefault ◆ SupportsCoverage 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
Definition at line 44 of file SanitizerArgs.cpp.
Referenced by clang::driver::SanitizerArgs::SanitizerArgs().
◆ TrappingDefault ◆ TrappingSupported Initial value:=
(SanitizerKind::Undefined &
~SanitizerKind::Vptr) | SanitizerKind::Integer |
SanitizerKind::ImplicitConversion | SanitizerKind::Nullability |
SanitizerKind::LocalBounds | SanitizerKind::CFI |
SanitizerKind::FloatDivideByZero | SanitizerKind::ObjCCast
Definition at line 67 of file SanitizerArgs.cpp.
Referenced by parseSanitizeTrapArgs().
◆ UnrecoverableRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4