Lines Matching defs:Arg

114 static SanitizerMask parseArgValues(const Driver &D, const llvm::opt::Arg *A,
119 static int parseCoverageFeatures(const Driver &D, const llvm::opt::Arg *A,
124 static int parseBinaryMetadataFeatures(const Driver &D, const llvm::opt::Arg *A,
139 static std::string describeSanitizeArg(const llvm::opt::Arg *A,
216 for (const auto *Arg : Args) {
218 if (Arg->getOption().matches(SCLOptionID)) {
219 Arg->claim();
220 std::string SCLPath = Arg->getValue();
227 } else if (Arg->getOption().matches(NoSCLOptionID)) {
228 Arg->claim();
256 for (const llvm::opt::Arg *Arg : llvm::reverse(Args)) {
257 if (Arg->getOption().matches(options::OPT_fsanitize_trap_EQ)) {
258 Arg->claim();
259 SanitizerMask Add = parseArgValues(D, Arg, true);
266 << Arg->getSpelling() << toString(S);
269 } else if (Arg->getOption().matches(options::OPT_fno_sanitize_trap_EQ)) {
270 Arg->claim();
272 expandSanitizerGroups(parseArgValues(D, Arg, DiagnoseErrors));
347 Arg *OptLevel = Args.getLastArg(options::OPT_O_Group);
351 for (const llvm::opt::Arg *Arg : llvm::reverse(Args)) {
352 if (Arg->getOption().matches(options::OPT_fsanitize_EQ)) {
353 Arg->claim();
354 SanitizerMask Add = parseArgValues(D, Arg, DiagnoseErrors);
363 << Arg->getAsString(Args);
376 std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose);
388 std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose);
397 if (llvm::opt::Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
417 std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose);
447 std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose);
459 if (const llvm::opt::Arg *NoRTTIArg = TC.getRTTIArg()) {
516 } else if (Arg->getOption().matches(options::OPT_fno_sanitize_EQ)) {
517 Arg->claim();
518 SanitizerMask Remove = parseArgValues(D, Arg, DiagnoseErrors);
635 for (const auto *Arg : Args) {
636 if (Arg->getOption().matches(options::OPT_fsanitize_recover_EQ)) {
637 SanitizerMask Add = parseArgValues(D, Arg, DiagnoseErrors);
646 << Arg->getSpelling() << toString(SetToDiagnose);
650 Arg->claim();
651 } else if (Arg->getOption().matches(options::OPT_fno_sanitize_recover_EQ)) {
652 SanitizerMask Remove = parseArgValues(D, Arg, DiagnoseErrors);
661 << Arg->getSpelling() << toString(SetToDiagnose);
665 Arg->claim();
689 if (Arg *A =
793 for (const auto *Arg : Args) {
794 if (Arg->getOption().matches(options::OPT_fsanitize_coverage)) {
796 if (Arg->getNumValues() == 1 &&
797 !StringRef(Arg->getValue(0))
800 Arg->claim();
803 << Arg->getAsString(Args) << /*hasReplacement=*/true
808 CoverageFeatures |= parseCoverageFeatures(D, Arg, DiagnoseErrors);
813 Arg->claim();
817 } else if (Arg->getOption().matches(options::OPT_fno_sanitize_coverage)) {
818 Arg->claim();
819 CoverageFeatures &= ~parseCoverageFeatures(D, Arg, DiagnoseErrors);
890 for (const auto *Arg :
893 if (Arg->getOption().matches(
895 Arg->claim();
897 parseBinaryMetadataFeatures(D, Arg, DiagnoseErrors);
899 Arg->claim();
901 ~parseBinaryMetadataFeatures(D, Arg, DiagnoseErrors);
924 if (Arg *A =
935 if (Arg *WindowsDebugRTArg =
996 if (const auto *Arg =
998 auto parsedAsanDtorKind = AsanDtorKindFromString(Arg->getValue());
1001 << Arg->getSpelling() << Arg->getValue();
1006 if (const auto *Arg = Args.getLastArg(
1009 AsanDetectStackUseAfterReturnModeFromString(Arg->getValue());
1014 << Arg->getSpelling() << Arg->getValue();
1035 if (Arg *HwasanAbiArg =
1400 SanitizerMask parseArgValues(const Driver &D, const llvm::opt::Arg *A,
1429 int parseCoverageFeatures(const Driver &D, const llvm::opt::Arg *A,
1465 int parseBinaryMetadataFeatures(const Driver &D, const llvm::opt::Arg *A,
1493 const auto *Arg = *I;
1494 if (Arg->getOption().matches(options::OPT_fsanitize_EQ)) {
1496 expandSanitizerGroups(parseArgValues(D, Arg, false));
1498 return describeSanitizeArg(Arg, Mask);
1499 } else if (Arg->getOption().matches(options::OPT_fno_sanitize_EQ)) {
1501 expandSanitizerGroups(parseArgValues(D, Arg, false));
1508 std::string describeSanitizeArg(const llvm::opt::Arg *A, SanitizerMask Mask) {