summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2015-07-22 15:32:36 +0000
committerRenato Golin <renato.golin@linaro.org>2015-07-22 15:32:36 +0000
commita74bbc7b36dd5afb4f099ba3d277d39bdf67f910 (patch)
tree9bd378807c566e7743ff854676166e90076239b2 /clang
parentb6a04a141cb0f0a6b2832f360cc2aaf4569d5d59 (diff)
downloadbcm5719-llvm-a74bbc7b36dd5afb4f099ba3d277d39bdf67f910.tar.gz
bcm5719-llvm-a74bbc7b36dd5afb4f099ba3d277d39bdf67f910.zip
Pass -I options to integrates and external assemblers
Fixes PR21000. Patch by Artem Belevich. llvm-svn: 242904
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/Tools.cpp4
-rw-r--r--clang/test/Driver/as-options.s37
2 files changed, 41 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 8e5e9804a36..f9a3dedc84b 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -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/clang/test/Driver/as-options.s b/clang/test/Driver/as-options.s
new file mode 100644
index 00000000000..405030fb371
--- /dev/null
+++ b/clang/test/Driver/as-options.s
@@ -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"
OpenPOWER on IntegriCloud