summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-24 16:47:49 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-24 16:47:49 +0000
commitfe6c97b443c711fe18882966f3593ae75402339e (patch)
tree16b771648957f46538f48fcb36d08aeccc532f58
parente3dc0f048ab677493f0341f9faefa2241d0590e7 (diff)
downloadbcm5719-llvm-fe6c97b443c711fe18882966f3593ae75402339e.tar.gz
bcm5719-llvm-fe6c97b443c711fe18882966f3593ae75402339e.zip
Driver/Clang: Forward -Wa, and -Xassembler to clang -cc1 when using the
integrated assembler. For now this mostly just means that we will error out if someone tries to use this mechanism to send an argument to the assembler. llvm-svn: 111921
-rw-r--r--clang/lib/Driver/Tools.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 0024bc94d8d..4f839e9dea3 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -708,6 +708,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
options::OPT_mno_relax_all,
!IsOpt))
CmdArgs.push_back("-mrelax-all");
+
+ // When using an integrated assembler, we send -Wa, and -Xassembler options
+ // to -cc1.
+ Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,
+ options::OPT_Xassembler);
} else if (isa<PrecompileJobAction>(JA)) {
// Use PCH if the user requested it.
bool UsePCH = D.CCCUsePCH;
@@ -1322,7 +1327,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-fdiagnostics-show-category");
CmdArgs.push_back(A->getValue(Args));
}
-
+
// Color diagnostics are the default, unless the terminal doesn't support
// them.
if (Args.hasFlag(options::OPT_fcolor_diagnostics,
@@ -1337,7 +1342,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (!Args.hasFlag(options::OPT_fspell_checking,
options::OPT_fno_spell_checking))
CmdArgs.push_back("-fno-spell-checking");
-
+
if (Arg *A = Args.getLastArg(options::OPT_fshow_overloads_EQ))
A->render(Args, CmdArgs);
@@ -1426,7 +1431,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
for (ArgList::const_iterator it = Args.begin(),
ie = Args.end(); it != ie; ++it)
(*it)->render(Args, OriginalArgs);
-
+
llvm::SmallString<256> Flags;
Flags += Exec;
for (unsigned i = 0, e = OriginalArgs.size(); i != e; ++i) {
OpenPOWER on IntegriCloud