RequirementMachine: Add upper bound on number of attempts at splitting concrete equivalence classes

This commit is contained in:
Slava Pestov
2022-03-21 18:01:04 -04:00
parent 4069434100
commit 9ccdd15d58
4 changed files with 41 additions and 4 deletions

View File

@@ -998,6 +998,17 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
}
}
if (const Arg *A = Args.getLastArg(OPT_requirement_machine_max_split_concrete_equiv_class_attempts)) {
unsigned limit;
if (StringRef(A->getValue()).getAsInteger(10, limit)) {
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
A->getAsString(Args), A->getValue());
HadError = true;
} else {
Opts.RequirementMachineMaxSplitConcreteEquivClassAttempts = limit;
}
}
if (Args.hasArg(OPT_disable_requirement_machine_concrete_contraction))
Opts.EnableRequirementMachineConcreteContraction = false;