summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2012-11-07 23:37:14 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2012-11-07 23:37:14 +0000
commit70d85be6d3d0aa56de9b41fbf80882a4b271822d (patch)
tree376f28892473fff3909cf3c9a8d2e8eb3d7c0ac1
parent7c678de8614720999d1346b89e73480e4bdc6f87 (diff)
downloadbcm5719-llvm-70d85be6d3d0aa56de9b41fbf80882a4b271822d.tar.gz
bcm5719-llvm-70d85be6d3d0aa56de9b41fbf80882a4b271822d.zip
[Driver] Fix -Wp,-MMD pr13959
llvm-svn: 167559
-rw-r--r--clang/lib/Driver/Driver.cpp6
-rw-r--r--clang/test/Driver/Wp-args.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index d4b1bae6dd2..4fc6db980c0 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -185,7 +185,6 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const {
// some build systems. We don't try to be complete here because we don't
// care to encourage this usage model.
if (A->getOption().matches(options::OPT_Wp_COMMA) &&
- A->getNumValues() == 2 &&
(A->getValue(0) == StringRef("-MD") ||
A->getValue(0) == StringRef("-MMD"))) {
// Rewrite to -MD/-MMD along with -MF.
@@ -193,8 +192,9 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const {
DAL->AddFlagArg(A, Opts->getOption(options::OPT_MD));
else
DAL->AddFlagArg(A, Opts->getOption(options::OPT_MMD));
- DAL->AddSeparateArg(A, Opts->getOption(options::OPT_MF),
- A->getValue(1));
+ if (A->getNumValues() == 2)
+ DAL->AddSeparateArg(A, Opts->getOption(options::OPT_MF),
+ A->getValue(1));
continue;
}
diff --git a/clang/test/Driver/Wp-args.c b/clang/test/Driver/Wp-args.c
index 0ab85b4c9c7..1d1af24804a 100644
--- a/clang/test/Driver/Wp-args.c
+++ b/clang/test/Driver/Wp-args.c
@@ -11,3 +11,11 @@
// CHECK: "-MT"
//
// PR4062
+
+// RUN: %clang --target i386-pc-linux-gnu -### \
+// RUN: -Wp,-MMD -fsyntax-only %s 2> %t
+// RUN: FileCheck -check-prefix MMD < %t %s
+
+// MMD: "-cc1"
+// MMD-NOT: -MMD
+// MMD: "-dependency-file" "Wp-args.d"
OpenPOWER on IntegriCloud