]> granicus.if.org Git - clang/commitdiff
clang: forward -no-integrated-as from the driver
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 22 Feb 2014 21:50:09 +0000 (21:50 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 22 Feb 2014 21:50:09 +0000 (21:50 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201952 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/Driver/no-integrated-as.c [new file with mode: 0644]

index b6214a7177ccd476676d182679afbbffd83e8d99..31192a2b0281f47007b9c4954e3452dc5eb87fea 100644 (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");
diff --git a/test/Driver/no-integrated-as.c b/test/Driver/no-integrated-as.c
new file mode 100644 (file)
index 0000000..4e2039a
--- /dev/null
@@ -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
+