aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@freebsd.org>2010-11-08 17:46:39 +0000
committerRoman Divacky <rdivacky@freebsd.org>2010-11-08 17:46:39 +0000
commit67dece7e8b38138dd07e3d461d675dd8c8b4e025 (patch)
treeef65fa4ca2b3abd2d39b1efdacb4a376c43504a4 /lib/Driver/ToolChains.cpp
parent6493cc50b66c2d097b3e22514bbe303048c4a8ff (diff)
Use integrated-as for processing .s files on FreeBSD. Copied
from Linux/OpenBSD code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118419 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChains.cpp')
-rw-r--r--lib/Driver/ToolChains.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 6a15666362..07ab226ad6 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -1098,11 +1098,18 @@ Tool &FreeBSD::SelectTool(const Compilation &C, const JobAction &JA) const {
else
Key = JA.getKind();
+ bool UseIntegratedAs = C.getArgs().hasFlag(options::OPT_integrated_as,
+ options::OPT_no_integrated_as,
+ IsIntegratedAssemblerDefault());
+
Tool *&T = Tools[Key];
if (!T) {
switch (Key) {
case Action::AssembleJobClass:
- T = new tools::freebsd::Assemble(*this); break;
+ if (UseIntegratedAs)
+ T = new tools::ClangAs(*this);
+ else
+ T = new tools::freebsd::Assemble(*this);
case Action::LinkJobClass:
T = new tools::freebsd::Link(*this); break;
default: