aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-09 18:36:12 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-09 18:36:12 +0000
commit0dcb9a3705743ec972af37f48ead81a0939e3958 (patch)
tree57e8beb52201b827769cf861b94b3ee22415e784
parent4954018954bbc97363eef02d0c83bea19ce9b329 (diff)
Push bound architecture name into TranslateArgs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81366 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Driver/ToolChain.h9
-rw-r--r--lib/Driver/Compilation.cpp2
-rw-r--r--lib/Driver/ToolChains.cpp6
-rw-r--r--lib/Driver/ToolChains.h6
4 files changed, 15 insertions, 8 deletions
diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h
index c9d0ef197d..ab919656ee 100644
--- a/include/clang/Driver/ToolChain.h
+++ b/include/clang/Driver/ToolChain.h
@@ -68,9 +68,12 @@ public:
// Tool access.
- /// TranslateArgs - Create a new derived argument list for any
- /// argument translations this ToolChain may wish to perform.
- virtual DerivedArgList *TranslateArgs(InputArgList &Args) const = 0;
+ /// TranslateArgs - Create a new derived argument list for any argument
+ /// translations this ToolChain may wish to perform.
+ ///
+ /// \param BoundArch - The bound architecture name, or 0.
+ virtual DerivedArgList *TranslateArgs(InputArgList &Args,
+ const char *BoundArch) const = 0;
/// SelectTool - Choose a tool to use to handle the action \arg JA.
virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const = 0;
diff --git a/lib/Driver/Compilation.cpp b/lib/Driver/Compilation.cpp
index f6e1885643..c12f5aa881 100644
--- a/lib/Driver/Compilation.cpp
+++ b/lib/Driver/Compilation.cpp
@@ -49,7 +49,7 @@ const DerivedArgList &Compilation::getArgsForToolChain(const ToolChain *TC,
DerivedArgList *&Entry = TCArgs[std::make_pair(TC, BoundArch)];
if (!Entry)
- Entry = TC->TranslateArgs(*Args);
+ Entry = TC->TranslateArgs(*Args, BoundArch);
return *Entry;
}
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index fb6217d3ed..7b14a20f18 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -133,7 +133,8 @@ Tool &Darwin::SelectTool(const Compilation &C, const JobAction &JA) const {
return *T;
}
-DerivedArgList *Darwin::TranslateArgs(InputArgList &Args) const {
+DerivedArgList *Darwin::TranslateArgs(InputArgList &Args,
+ const char *BoundArch) const {
DerivedArgList *DAL = new DerivedArgList(Args, false);
const OptTable &Opts = getHost().getDriver().getOpts();
@@ -389,7 +390,8 @@ const char *Generic_GCC::GetForcedPicModel() const {
return 0;
}
-DerivedArgList *Generic_GCC::TranslateArgs(InputArgList &Args) const {
+DerivedArgList *Generic_GCC::TranslateArgs(InputArgList &Args,
+ const char *BoundArch) const {
return new DerivedArgList(Args, true);
}
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
index 6a3ce37975..0e5ce34884 100644
--- a/lib/Driver/ToolChains.h
+++ b/lib/Driver/ToolChains.h
@@ -33,7 +33,8 @@ public:
Generic_GCC(const HostInfo &Host, const llvm::Triple& Triple);
~Generic_GCC();
- virtual DerivedArgList *TranslateArgs(InputArgList &Args) const;
+ virtual DerivedArgList *TranslateArgs(InputArgList &Args,
+ const char *BoundArch) const;
virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const;
@@ -101,7 +102,8 @@ public:
bool isIPhone() const { return IsIPhone; }
- virtual DerivedArgList *TranslateArgs(InputArgList &Args) const;
+ virtual DerivedArgList *TranslateArgs(InputArgList &Args,
+ const char *BoundArch) const;
virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const;