]> granicus.if.org Git - clang/commitdiff
Pass -I options to integrates and external assemblers
authorRenato Golin <renato.golin@linaro.org>
Wed, 22 Jul 2015 15:32:36 +0000 (15:32 +0000)
committerRenato Golin <renato.golin@linaro.org>
Wed, 22 Jul 2015 15:32:36 +0000 (15:32 +0000)
Fixes PR21000.

Patch by Artem Belevich.

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

lib/Driver/Tools.cpp
test/Driver/as-options.s [new file with mode: 0644]

index 8e5e9804a36f2fc5a6fe48c39a05ea24ae8a2bf0..f9a3dedc84be4c624e97e9f565a9c6041026e92c 100644 (file)
@@ -5316,6 +5316,9 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
     // assembler on assembly source files.
     CmdArgs.push_back("-dwarf-debug-producer");
     CmdArgs.push_back(Args.MakeArgString(getClangFullVersion()));
+
+    // And pass along -I options
+    Args.AddAllArgs(CmdArgs, options::OPT_I);
   }
 
   // Optionally embed the -cc1as level arguments into the debug info, for build
@@ -7813,6 +7816,7 @@ void gnutools::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
   if (NeedsKPIC)
     addAssemblerKPIC(Args, CmdArgs);
 
+  Args.AddAllArgs(CmdArgs, options::OPT_I);
   Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
 
   CmdArgs.push_back("-o");
diff --git a/test/Driver/as-options.s b/test/Driver/as-options.s
new file mode 100644 (file)
index 0000000..405030f
--- /dev/null
@@ -0,0 +1,37 @@
+// PR21000: Test that -I is passed to both external and integrated assemblers.
+
+// RUN: %clang -target x86_64-linux-gnu -c -no-integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target x86_64-linux-gnu -c -no-integrated-as %s \
+// RUN:   -I foo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target x86_64-linux-gnu -c -integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target x86_64-linux-gnu -c -integrated-as %s \
+// RUN:   -I foo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// Other GNU targets
+
+// RUN: %clang -target aarch64-linux-gnu -c -no-integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target aarch64-linux-gnu -c -integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target armv7-linux-gnueabihf -c -no-integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// RUN: %clang -target armv7-linux-gnueabihf -c -integrated-as %s \
+// RUN:   -Ifoo_dir -### 2>&1 \
+// RUN:   | FileCheck %s
+
+// CHECK: "-I" "foo_dir"