From 69756a8a5c81fce53ca5514dff6abb42ecbaaea3 Mon Sep 17 00:00:00 2001 From: Renato Golin Date: Wed, 22 Jul 2015 15:32:36 +0000 Subject: [PATCH] Pass -I options to integrates and external assemblers 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 | 4 ++++ test/Driver/as-options.s | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 test/Driver/as-options.s diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 8e5e9804a3..f9a3dedc84 100644 --- a/lib/Driver/Tools.cpp +++ b/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/test/Driver/as-options.s b/test/Driver/as-options.s new file mode 100644 index 0000000000..405030fb37 --- /dev/null +++ b/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" -- 2.40.0