Pass -I options to integrates and external assemblers

Fixes PR21000.

Patch by Artem Belevich.

llvm-svn: 242904
This commit is contained in:
Renato Golin 2015-07-22 15:32:36 +00:00
parent b6a04a141c
commit a74bbc7b36
2 changed files with 41 additions and 0 deletions

View File

@ -5316,6 +5316,9 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
// assembler on assembly source files. // assembler on assembly source files.
CmdArgs.push_back("-dwarf-debug-producer"); CmdArgs.push_back("-dwarf-debug-producer");
CmdArgs.push_back(Args.MakeArgString(getClangFullVersion())); 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 // 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) if (NeedsKPIC)
addAssemblerKPIC(Args, CmdArgs); addAssemblerKPIC(Args, CmdArgs);
Args.AddAllArgs(CmdArgs, options::OPT_I);
Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
CmdArgs.push_back("-o"); CmdArgs.push_back("-o");

View File

@ -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"