Lines Matching full:sanitizers

10 #include "clang/Basic/Sanitizers.h"
119 /// Produce a string containing comma-separated names of sanitizers in \p
120 /// Sanitizers set.
121 static std::string toString(const clang::SanitizerSet &Sanitizers);
204 #include "clang/Basic/Sanitizers.def" in setGroupBits()
211 // sanitizers disabled by the current sanitizer in parseSanitizeTrapArgs()
253 return (Sanitizers.Mask & NeedsUbsanRt & ~TrapSanitizers.Mask) || in needsUbsanRt()
258 return !(Sanitizers.Mask & SanitizerKind::CFI & ~TrapSanitizers.Mask) && in needsCfiRt()
263 return (Sanitizers.Mask & SanitizerKind::CFI & ~TrapSanitizers.Mask) && in needsCfiDiagRt()
268 return NeedPIE || (Sanitizers.Mask & RequiresPIE); in requiresPIE()
272 return static_cast<bool>(Sanitizers.Mask & NeedsUnwindTables); in needsUnwindTables()
276 return static_cast<bool>(Sanitizers.Mask & NeedsLTO); in needsLTO()
282 // sanitizers disabled by the current sanitizer in SanitizerArgs()
284 SanitizerMask AllAddedKinds; // Mask of all sanitizers ever enabled by in SanitizerArgs()
334 // sanitizers in Add are those which have been explicitly enabled. in SanitizerArgs()
399 // Take out the Vptr sanitizer from the enabled sanitizers in SanitizerArgs()
406 // Silently discard any unsupported sanitizers implicitly enabled through in SanitizerArgs()
472 // Enable toolchain specific default sanitizers if not explicitly disabled. in SanitizerArgs()
475 // Disable default sanitizers that are incompatible with explicitly requested in SanitizerArgs()
507 // Report error if there are non-trapping sanitizers that require in SanitizerArgs()
526 // Warn about incompatible groups of sanitizers. in SanitizerArgs()
585 // Add default ignorelist from resource directory for activated sanitizers, in SanitizerArgs()
674 // enabled sanitizers. in SanitizerArgs()
895 // Finally, initialize the set of available and recoverable sanitizers. in SanitizerArgs()
896 Sanitizers.Mask |= Kinds; in SanitizerArgs()
900 "Overlap between recoverable and trapping sanitizers"); in SanitizerArgs()
903 static std::string toString(const clang::SanitizerSet &Sanitizers) { in toString() argument
906 if (Sanitizers.has(SanitizerKind::ID)) { \ in toString()
911 #include "clang/Basic/Sanitizers.def" in toString()
955 // NVPTX doesn't currently support sanitizers. Bailing out here means in addArgs()
967 // Do it even if Sanitizers.empty() since some forms of coverage don't require in addArgs()
968 // sanitizers. in addArgs()
1022 if (Sanitizers.empty()) in addArgs()
1024 CmdArgs.push_back(Args.MakeArgString("-fsanitize=" + toString(Sanitizers))); in addArgs()
1115 if (Sanitizers.has(SanitizerKind::HWAddress) && TC.getTriple().isAArch64()) { in addArgs()
1122 // https://github.com/google/sanitizers/issues/373 in addArgs()
1125 if (Sanitizers.has(SanitizerKind::Memory) || in addArgs()
1126 Sanitizers.has(SanitizerKind::Address)) in addArgs()
1131 // libcalls to these functions. Other sanitizers effectively do the same thing in addArgs()
1134 if (Sanitizers.has(SanitizerKind::FuzzerNoLink)) { in addArgs()
1148 if (Sanitizers.hasOneOf(CFIClasses) && !TC.getTriple().isOSWindows() && in addArgs()
1152 Sanitizers.Mask & CFIClasses) in addArgs()
1156 if (Sanitizers.has(SanitizerKind::MemTag) && !hasTargetFeatureMTE(CmdArgs)) in addArgs()
1245 std::string Sanitizers; in describeSanitizeArg() local
1250 if (!Sanitizers.empty()) in describeSanitizeArg()
1251 Sanitizers += ","; in describeSanitizeArg()
1252 Sanitizers += A->getValue(i); in describeSanitizeArg()
1256 assert(!Sanitizers.empty() && "arg didn't provide expected value"); in describeSanitizeArg()
1257 return "-fsanitize=" + Sanitizers; in describeSanitizeArg()