From: Michael J. Spencer Date: Wed, 7 Nov 2012 23:37:14 +0000 (+0000) Subject: [Driver] Fix -Wp,-MMD pr13959 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da05df7ac964abcd18956ffaf6d66ff13a203a11;p=clang [Driver] Fix -Wp,-MMD pr13959 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167559 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp index d4b1bae6dd..4fc6db980c 100644 --- a/lib/Driver/Driver.cpp +++ b/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/test/Driver/Wp-args.c b/test/Driver/Wp-args.c index 0ab85b4c9c..1d1af24804 100644 --- a/test/Driver/Wp-args.c +++ b/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"