clang: forward -no-integrated-as from the driver

Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

llvm-svn: 201952
This commit is contained in:
Saleem Abdulrasool 2014-02-22 21:50:09 +00:00
parent d20d1adfb8
commit 87a7fda237
2 changed files with 26 additions and 2 deletions

View File

@ -2514,12 +2514,17 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// Decide whether to use verbose asm. Verbose assembly is the default on
// toolchains which have the integrated assembler on by default.
bool IsVerboseAsmDefault = getToolChain().IsIntegratedAssemblerDefault();
bool IsIntegratedAssemblerDefault =
getToolChain().IsIntegratedAssemblerDefault();
if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm,
IsVerboseAsmDefault) ||
IsIntegratedAssemblerDefault) ||
Args.hasArg(options::OPT_dA))
CmdArgs.push_back("-masm-verbose");
if (!Args.hasFlag(options::OPT_integrated_as, options::OPT_no_integrated_as,
IsIntegratedAssemblerDefault))
CmdArgs.push_back("-no-integrated-as");
if (Args.hasArg(options::OPT_fdebug_pass_structure)) {
CmdArgs.push_back("-mdebug-pass");
CmdArgs.push_back("Structure");

View File

@ -0,0 +1,19 @@
// RUN: %clang -triple i386 -### -no-integrated-as %s 2>&1 \
// RUN: | FileCheck %s -check-prefix NOIAS
// NOIAS: -no-integrated-as
// RUN: %clang -triple i386 -### -integrated-as %s 2>&1 \
// RUN: | FileCheck %s -check-prefix IAS
// IAS-NOT: -no-integrated-as
// RUN: %clang -triple i386 -### %s 2>&1 | FileCheck %s -check-prefix DEFAULT
// DEFAULT-NOT: -no-integrated-as
// RUN: %clang -triple msp430 -### %s 2>&1 \
// RUN: | FileCheck %s -check-prefix NO-IAS-DEFAULT
// NO-IAS-DEFAULT-NOT: -no-integrated-as