From 87a7fda237216cd2ce77233b24115c0f80ce496d Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sat, 22 Feb 2014 21:50:09 +0000 Subject: [PATCH] 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 --- clang/lib/Driver/Tools.cpp | 9 +++++++-- clang/test/Driver/no-integrated-as.c | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 clang/test/Driver/no-integrated-as.c diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index b6214a7177cc..31192a2b0281 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -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"); diff --git a/clang/test/Driver/no-integrated-as.c b/clang/test/Driver/no-integrated-as.c new file mode 100644 index 000000000000..4e2039af8159 --- /dev/null +++ b/clang/test/Driver/no-integrated-as.c @@ -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 +