aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/ToolChain.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-17 21:21:26 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-17 21:21:26 +0000
commitfa0cda430f7324404ddd74f41a3b8f5f749d7ec1 (patch)
tree9ab993bf8c144aabd7174478d267b80d68046a23 /lib/Driver/ToolChain.cpp
parent8dbc2694424b4e842b1d5ea39744a137b58600c3 (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.cpp19
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;