summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorYuka Takahashi <yukatkh@gmail.com>2017-06-16 16:01:13 +0000
committerYuka Takahashi <yukatkh@gmail.com>2017-06-16 16:01:13 +0000
commitcdb5348738c4da3cea9d9671b1576e196e01132e (patch)
tree2783306d3ffe77d141a3245eff24be4bc002736f /clang
parentac2e25026fa7a198c33fe521d9c02865ede12981 (diff)
downloadbcm5719-llvm-cdb5348738c4da3cea9d9671b1576e196e01132e.tar.gz
bcm5719-llvm-cdb5348738c4da3cea9d9671b1576e196e01132e.zip
Fix a bug that warnings generated with -M or -MM flags
This is a patch for bug: https://bugs.llvm.org/show_bug.cgi?id=6817 Warnings should not be emitted with -M and -MM flags, because this mode is only used for generate MakeFiles. llvm-svn: 305561
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains/Clang.cpp3
-rw-r--r--clang/test/Driver/m_and_mm.c12
2 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 6d3dbb5b520..bd4e894d650 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -980,6 +980,9 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
DepTarget = Args.MakeArgString(llvm::sys::path::filename(P));
}
+ if (!A->getOption().matches(options::OPT_MD) && !A->getOption().matches(options::OPT_MMD)) {
+ CmdArgs.push_back("-w");
+ }
CmdArgs.push_back("-MT");
SmallString<128> Quoted;
QuoteTarget(DepTarget, Quoted);
diff --git a/clang/test/Driver/m_and_mm.c b/clang/test/Driver/m_and_mm.c
index 18cf7abfa62..e4d59bc70e2 100644
--- a/clang/test/Driver/m_and_mm.c
+++ b/clang/test/Driver/m_and_mm.c
@@ -1,3 +1,15 @@
// RUN: %clang -### \
// RUN: -M -MM %s 2> %t
// RUN: not grep '"-sys-header-deps"' %t
+
+// RUN: %clang -M -MM %s 2> %t
+// RUN: not grep "warning" %t
+
+// RUN: %clang -MMD -MD %s 2> %t
+// RUN: grep "warning" %t
+
+#warning "This warning shouldn't show up with -M and -MM"
+int main (void)
+{
+ return 0;
+}
OpenPOWER on IntegriCloud