aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Driver/ToolChains.cpp3
-rw-r--r--lib/Driver/Tools.cpp3
-rw-r--r--test/Driver/apple-kext-i386.cpp7
3 files changed, 11 insertions, 2 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index f34423b278..9344b65247 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -211,7 +211,8 @@ Tool &Darwin::SelectTool(const Compilation &C, const JobAction &JA,
types::isCXX(Inputs[0]->getType()) &&
getTriple().getOS() == llvm::Triple::Darwin &&
getTriple().getArch() == llvm::Triple::x86 &&
- C.getArgs().getLastArg(options::OPT_fapple_kext))
+ (C.getArgs().getLastArg(options::OPT_fapple_kext) ||
+ C.getArgs().getLastArg(options::OPT_mkernel)))
Key = JA.getKind();
else
Key = Action::AnalyzeJobClass;
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 59e024e7a3..ecfb4fef6f 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -1370,7 +1370,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (types::isCXX(InputType) &&
getToolChain().getTriple().getOS() == llvm::Triple::Darwin &&
getToolChain().getTriple().getArch() == llvm::Triple::x86) {
- if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)))
+ if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) ||
+ (Unsupported = Args.getLastArg(options::OPT_mkernel)))
D.Diag(diag::err_drv_clang_unsupported_opt_cxx_darwin_i386)
<< Unsupported->getOption().getName();
}
diff --git a/test/Driver/apple-kext-i386.cpp b/test/Driver/apple-kext-i386.cpp
index dc4e6a641f..8f4d4980a4 100644
--- a/test/Driver/apple-kext-i386.cpp
+++ b/test/Driver/apple-kext-i386.cpp
@@ -7,3 +7,10 @@
// CHECK: cc1plus"
// CHECK: "-fapple-kext"
+
+// RUN: %clang -ccc-host-triple i386-apple-darwin10 \
+// RUN: -mkernel -### -fsyntax-only %s 2> %t
+// RUN: FileCheck --check-prefix=CHECK-MKERNEL < %t %s
+
+// CHECK-MKERNEL: cc1plus"
+// CHECK-MKERNEL: "-mkernel"