A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/SanitizerArgs_8cpp.html below:

clang: lib/Driver/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.

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 }   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 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)   ◆ SANITIZER [1/2] #define SANITIZER (   NAME,   ID  ) ◆ SANITIZER [2/2] #define SANITIZER (   NAME,   ID  ) Value:

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  BinaryMetadataUAR 

Definition 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  CoverageControlFlow 

Definition at line 84 of file SanitizerArgs.cpp.

◆ addDefaultIgnorelists() static void addDefaultIgnorelists ( const DriverD, SanitizerMask  Kinds, std::vector< std::string > &  IgnorelistFiles, bool  DiagnoseErrors  ) static ◆ addIncludeLinkerOption() static void addIncludeLinkerOption ( const ToolChainTC, 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 DriverD, const llvm::opt::ArgList &  Args, SanitizerMask  Mask  ) static ◆ parseArgCutoffs() ◆ parseArgValues() ◆ parseBinaryMetadataFeatures() int parseBinaryMetadataFeatures ( const DriverD, const llvm::opt::Arg *  A, bool  DiagnoseErrors  ) static ◆ parseCoverageFeatures() int parseCoverageFeatures ( const DriverD, const llvm::opt::Arg *  A, bool  DiagnoseErrors  ) static

Parse -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 DriverD, const llvm::opt::Arg *  A, bool  DiagnoseErrors  ) static ◆ parseSanitizeArgs() ◆ parseSanitizeSkipHotCutoffArgs() ◆ parseSanitizeTrapArgs() static SanitizerMask parseSanitizeTrapArgs ( const DriverD, const llvm::opt::ArgList &  Args, bool  DiagnoseErrors  ) static ◆ parseSpecialCaseListArg() static void parseSpecialCaseListArg ( const DriverD, 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 DriverD, 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().

◆ Unrecoverable

RetroSearch 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