diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-17 21:21:26 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-17 21:21:26 +0000 |
commit | fa0cda430f7324404ddd74f41a3b8f5f749d7ec1 (patch) | |
tree | 9ab993bf8c144aabd7174478d267b80d68046a23 /lib/Driver/ToolChain.cpp | |
parent | 8dbc2694424b4e842b1d5ea39744a137b58600c3 (diff) |
Driver: Pass HostInfo reference into ToolChain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67105 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChain.cpp')
-rw-r--r-- | lib/Driver/ToolChain.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp index ff4e97b1d4..ea2528bfff 100644 --- a/lib/Driver/ToolChain.cpp +++ b/lib/Driver/ToolChain.cpp @@ -11,12 +11,13 @@ #include "clang/Driver/Action.h" #include "clang/Driver/Driver.h" +#include "clang/Driver/HostInfo.h" using namespace clang::driver; -ToolChain::ToolChain(Driver &_TheDriver, const char *_Arch, +ToolChain::ToolChain(const HostInfo &_Host, const char *_Arch, const char *_Platform, const char *_OS) - : TheDriver(_TheDriver), Arch(_Arch), Platform(_Platform), OS(_OS) { + : Host(_Host), Arch(_Arch), Platform(_Platform), OS(_OS) { } ToolChain::~ToolChain() { @@ -24,38 +25,38 @@ ToolChain::~ToolChain() { llvm::sys::Path ToolChain::GetFilePath(const Compilation &C, const char *Name) const { - return TheDriver.GetFilePath(Name, this); + return Host.getDriver().GetFilePath(Name, this); } llvm::sys::Path ToolChain::GetProgramPath(const Compilation &C, const char *Name) const { - return TheDriver.GetProgramPath(Name, this); + return Host.getDriver().GetProgramPath(Name, this); } bool ToolChain::ShouldUseClangCompiler(const Compilation &C, const JobAction &JA) const { // Check if user requested no clang, or clang doesn't understand // this type (we only handle single inputs for now). - if (TheDriver.CCCNoClang || JA.size() != 1 || + if (Host.getDriver().CCCNoClang || JA.size() != 1 || !types::isAcceptedByClang((*JA.begin())->getType())) return false; // Otherwise make sure this is an action clang undertands. if (isa<PreprocessJobAction>(JA)) { - if (TheDriver.CCCNoClangCPP) + if (Host.getDriver().CCCNoClangCPP) return false; } else if (!isa<PrecompileJobAction>(JA) && !isa<CompileJobAction>(JA)) return false; // Avoid CXX if the user requested. - if (TheDriver.CCCNoClangCXX && types::isCXX((*JA.begin())->getType())) + if (Host.getDriver().CCCNoClangCXX && types::isCXX((*JA.begin())->getType())) return false; // Finally, don't use clang if this isn't one of the user specified // archs to build. - if (!TheDriver.CCCClangArchs.empty() && - TheDriver.CCCClangArchs.count(getArchName())) + if (!Host.getDriver().CCCClangArchs.empty() && + Host.getDriver().CCCClangArchs.count(getArchName())) return false; return true; |