summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Driver/Tools.cpp4
-rw-r--r--clang/test/Driver/as-options.s12
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 526968cf41b..a398a557242 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -5115,6 +5115,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
@@ -7584,6 +7587,7 @@ void gnutools::Assemble::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);
diff --git a/clang/test/Driver/as-options.s b/clang/test/Driver/as-options.s
new file mode 100644
index 00000000000..eb1f9c7ffb0
--- /dev/null
+++ b/clang/test/Driver/as-options.s
@@ -0,0 +1,12 @@
+// PR21000: Test that -I is passed to assembler.
+// RUN: %clang -### -c -no-integrated-as %s -Ifoo_dir 2>&1 | FileCheck --check-prefix=BARE_INCLUDE1 %s
+// BARE_INCLUDE1: "-I" "foo_dir"
+
+// RUN: %clang -### -c -no-integrated-as %s -I foo_dir 2>&1 | FileCheck --check-prefix=BARE_INCLUDE2 %s
+// BARE_INCLUDE2: "-I" "foo_dir"
+
+// RUN: %clang -### -c -integrated-as %s -Ifoo_dir 2>&1 | FileCheck --check-prefix=BARE_INT_INCLUDE1 %s
+// BARE_INT_INCLUDE1: "-I" "foo_dir"
+
+// RUN: %clang -### -c -integrated-as %s -I foo_dir 2>&1 | FileCheck --check-prefix=BARE_INT_INCLUDE2 %s
+// BARE_INT_INCLUDE2: "-I" "foo_dir"
OpenPOWER on IntegriCloud