diff options
author | Oliver Stannard <oliver.stannard@arm.com> | 2016-07-27 08:54:13 +0000 |
---|---|---|
committer | Oliver Stannard <oliver.stannard@arm.com> | 2016-07-27 08:54:13 +0000 |
commit | 7921e833d559b253230ff093873f43530f6c43cc (patch) | |
tree | 088c8440924666f374e02b4e06ddcc8fc64719da /clang/lib/Driver/Tools.cpp | |
parent | c8de8cffa1133241ee10e2f7f26ec72974f68eb7 (diff) | |
download | llvm-7921e833d559b253230ff093873f43530f6c43cc.zip llvm-7921e833d559b253230ff093873f43530f6c43cc.tar.gz llvm-7921e833d559b253230ff093873f43530f6c43cc.tar.bz2 |
[ARM] Pass -mimplcit-it= to integrated assembler
Differential Revision: https://reviews.llvm.org/D22761
llvm-svn: 276851
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index e747149..bd306dd 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2882,6 +2882,27 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, DefaultIncrementalLinkerCompatible)) CmdArgs.push_back("-mincremental-linker-compatible"); + switch (C.getDefaultToolChain().getArch()) { + case llvm::Triple::arm: + case llvm::Triple::armeb: + case llvm::Triple::thumb: + case llvm::Triple::thumbeb: + if (Arg *A = Args.getLastArg(options::OPT_mimplicit_it_EQ)) { + StringRef Value = A->getValue(); + if (Value == "always" || Value == "never" || Value == "arm" || + Value == "thumb") { + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back(Args.MakeArgString("-arm-implicit-it=" + Value)); + } else { + D.Diag(diag::err_drv_unsupported_option_argument) + << A->getOption().getName() << Value; + } + } + break; + default: + break; + } + // When passing -I arguments to the assembler we sometimes need to // unconditionally take the next argument. For example, when parsing // '-Wa,-I -Wa,foo' we need to accept the -Wa,foo arg after seeing the |