From 70d85be6d3d0aa56de9b41fbf80882a4b271822d Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Wed, 7 Nov 2012 23:37:14 +0000 Subject: [PATCH] [Driver] Fix -Wp,-MMD pr13959 llvm-svn: 167559 --- clang/lib/Driver/Driver.cpp | 6 +++--- clang/test/Driver/Wp-args.c | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index d4b1bae..4fc6db9 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 0ab85b4..1d1af24 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" -- 2.7.4