summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-02 05:43:56 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-02 05:43:56 +0000
commitcc7df6cc7b00d9b43d0991f0f1006d4c078f7581 (patch)
tree62b1a9412d521fa7c2815ab240d98eb637fc3fe7 /clang/lib
parenta36c2b3a62633d55c17e28fa2835a7bc48601dfa (diff)
downloadbcm5719-llvm-cc7df6cc7b00d9b43d0991f0f1006d4c078f7581.tar.gz
bcm5719-llvm-cc7df6cc7b00d9b43d0991f0f1006d4c078f7581.zip
Driver: Move HostInfo::lookupTypeForExtension to ToolChain::LookupTypeForExtension.
llvm-svn: 110024
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/Driver.cpp2
-rw-r--r--clang/lib/Driver/HostInfo.cpp48
-rw-r--r--clang/lib/Driver/ToolChain.cpp4
-rw-r--r--clang/lib/Driver/ToolChains.cpp10
-rw-r--r--clang/lib/Driver/ToolChains.h2
5 files changed, 17 insertions, 49 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index e28b2bc6ed8..7fbbe0b838c 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -662,7 +662,7 @@ void Driver::BuildActions(const ToolChain &TC, const ArgList &Args,
// found. We use a host hook here because Darwin at least has its own
// idea of what .s is.
if (const char *Ext = strrchr(Value, '.'))
- Ty = Host->lookupTypeForExtension(Ext + 1);
+ Ty = TC.LookupTypeForExtension(Ext + 1);
if (Ty == types::TY_INVALID)
Ty = types::TY_Object;
diff --git a/clang/lib/Driver/HostInfo.cpp b/clang/lib/Driver/HostInfo.cpp
index 0636d9eab15..a8fdec8a103 100644
--- a/clang/lib/Driver/HostInfo.cpp
+++ b/clang/lib/Driver/HostInfo.cpp
@@ -53,17 +53,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- types::ID Ty = types::lookupTypeForExtension(Ext);
-
- // Darwin always preprocesses assembly files (unless -x is used
- // explicitly).
- if (Ty == types::TY_PP_Asm)
- return types::TY_Asm;
-
- return Ty;
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -170,15 +159,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- types::ID Ty = types::lookupTypeForExtension(Ext);
-
- if (Ty == types::TY_PP_Asm)
- return types::TY_Asm;
-
- return Ty;
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -212,10 +192,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -279,10 +255,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -330,10 +302,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -379,10 +347,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -439,10 +403,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -491,10 +451,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
@@ -540,10 +496,6 @@ public:
virtual bool useDriverDriver() const;
- virtual types::ID lookupTypeForExtension(const char *Ext) const {
- return types::lookupTypeForExtension(Ext);
- }
-
virtual ToolChain *CreateToolChain(const ArgList &Args,
const char *ArchName) const;
};
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 9fae67de32f..ab907c1aeff 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -34,3 +34,7 @@ std::string ToolChain::GetFilePath(const char *Name) const {
std::string ToolChain::GetProgramPath(const char *Name, bool WantFile) const {
return Host.getDriver().GetProgramPath(Name, *this, WantFile);
}
+
+types::ID ToolChain::LookupTypeForExtension(const char *Ext) const {
+ return types::lookupTypeForExtension(Ext);
+}
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 0449711208e..bdccc3e3da2 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -40,6 +40,16 @@ Darwin::Darwin(const HostInfo &Host, const llvm::Triple& Triple,
<< _DarwinVersion[1];
}
+types::ID Darwin::LookupTypeForExtension(const char *Ext) const {
+ types::ID Ty = types::lookupTypeForExtension(Ext);
+
+ // Darwin always preprocesses assembly files (unless -x is used explicitly).
+ if (Ty == types::TY_PP_Asm)
+ return types::TY_Asm;
+
+ return Ty;
+}
+
// FIXME: Can we tablegen this?
static const char *GetArmArchForMArch(llvm::StringRef Value) {
if (Value == "armv6k")
diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h
index b6c7badf3b3..06d4fff4e7c 100644
--- a/clang/lib/Driver/ToolChains.h
+++ b/clang/lib/Driver/ToolChains.h
@@ -147,6 +147,8 @@ public:
/// @name ToolChain Implementation
/// {
+ virtual types::ID LookupTypeForExtension(const char *Ext) const;
+
virtual DerivedArgList *TranslateArgs(const DerivedArgList &Args,
const char *BoundArch) const;
OpenPOWER on IntegriCloud