[utils] Improvements to check_cfc.py to work better with some build systems.

Recognise options to output dependency files and don't perform checks.
Report input file name when reporting a check failure so it is more obvious in large build logs.

Differential Revision: http://reviews.llvm.org/D10183

llvm-svn: 238928
diff --git a/clang/utils/check_cfc/test_check_cfc.py b/clang/utils/check_cfc/test_check_cfc.py
index 0eee5b8..e304ff5 100755
--- a/clang/utils/check_cfc/test_check_cfc.py
+++ b/clang/utils/check_cfc/test_check_cfc.py
@@ -103,6 +103,16 @@
             check_cfc.is_normal_compile(['clang', '-c', 'test.cpp', '--version']))
         self.assertFalse(
             check_cfc.is_normal_compile(['clang', '-c', 'test.cpp', '--help']))
+        # Outputting dependency files is not a normal compile
+        self.assertFalse(
+            check_cfc.is_normal_compile(['clang', '-c', '-M', 'test.cpp']))
+        self.assertFalse(
+            check_cfc.is_normal_compile(['clang', '-c', '-MM', 'test.cpp']))
+        # Creating a dependency file as a side effect still outputs an object file
+        self.assertTrue(
+            check_cfc.is_normal_compile(['clang', '-c', '-MD', 'test.cpp']))
+        self.assertTrue(
+            check_cfc.is_normal_compile(['clang', '-c', '-MMD', 'test.cpp']))
 
     def test_replace_output_file(self):
         self.assertEqual(check_cfc.replace_output_file(