optional pointer to consumer replaces NullDiagnosticConsumer placeholder

This commit is contained in:
David Ungar
2018-05-09 17:18:13 -07:00
parent dc5827cf22
commit 02fcbf7226
5 changed files with 66 additions and 16 deletions

View File

@@ -97,6 +97,13 @@ bool FrontendInputsAndOutputs::forEachPrimaryInput(
return false;
}
bool FrontendInputsAndOutputs::forEachNonPrimaryInput(
llvm::function_ref<bool(const InputFile &)> fn) const {
return forEachInput([&](const InputFile &f) -> bool {
return f.isPrimary() ? false : fn(f);
});
}
void FrontendInputsAndOutputs::assertMustNotBeMoreThanOnePrimaryInput() const {
assert(!hasMultiplePrimaryInputs() &&
"have not implemented >1 primary input yet");
@@ -364,6 +371,11 @@ bool FrontendInputsAndOutputs::forEachInputProducingSupplementaryOutput(
: hasInputs() ? fn(firstInput()) : false;
}
bool FrontendInputsAndOutputs::forEachInputNotProducingSupplementaryOutput(
llvm::function_ref<bool(const InputFile &)> fn) const {
return hasPrimaryInputs() ? forEachNonPrimaryInput(fn) : false;
}
bool FrontendInputsAndOutputs::hasSupplementaryOutputPath(
llvm::function_ref<const std::string &(const SupplementaryOutputPaths &)>
extractorFn) const {