#include "clang/Driver/Compilation.h"
#include "clang/Basic/LLVM.h"
#include "clang/Driver/Action.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/Job.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/ToolChain.h"
#include "clang/Driver/Util.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Option/OptSpecifier.h"
#include "llvm/Option/Option.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/Triple.h"
#include <cassert>
#include <string>
#include <system_error>
#include <utility>
usingnamespaceclang;
usingnamespacedriver;
usingnamespacellvm::opt;
Compilation::Compilation(const Driver &D, const ToolChain &_DefaultToolChain,
InputArgList *_Args, DerivedArgList *_TranslatedArgs,
bool ContainsError)
: … { … }
Compilation::~Compilation() { … }
const DerivedArgList &
Compilation::getArgsForToolChain(const ToolChain *TC, StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind) { … }
bool Compilation::CleanupFile(const char *File, bool IssueErrors) const { … }
bool Compilation::CleanupFileList(const llvm::opt::ArgStringList &Files,
bool IssueErrors) const { … }
bool Compilation::CleanupFileMap(const ArgStringMap &Files,
const JobAction *JA,
bool IssueErrors) const { … }
int Compilation::ExecuteCommand(const Command &C,
const Command *&FailingCommand,
bool LogOnly) const { … }
FailingCommandList;
static bool ActionFailed(const Action *A,
const FailingCommandList &FailingCommands) { … }
static bool InputsOk(const Command &C,
const FailingCommandList &FailingCommands) { … }
void Compilation::ExecuteJobs(const JobList &Jobs,
FailingCommandList &FailingCommands,
bool LogOnly) const { … }
void Compilation::initCompilationForDiagnostics() { … }
StringRef Compilation::getSysRoot() const { … }
void Compilation::Redirect(ArrayRef<std::optional<StringRef>> Redirects) { … }