]> granicus.if.org Git - clang/commitdiff
Fixes a crash when generating dependency file stuff
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 15 Apr 2011 18:49:23 +0000 (18:49 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 15 Apr 2011 18:49:23 +0000 (18:49 +0000)
and output file is not writable. // rdar://9286457.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129587 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/DependencyFile.cpp
test/Frontend/dependency-generation-crash.c [new file with mode: 0644]

index bc5a55df0860aae4e1fddd54c3f821c60697be4c..5c3a23128a147de5cc74e664066c1417ab86be1e 100644 (file)
@@ -171,7 +171,7 @@ void DependencyFileCallback::OutputDependencyFile() {
   *OS << '\n';
 
   // Create phony targets if requested.
-  if (PhonyTarget) {
+  if (PhonyTarget && !Files.empty()) {
     // Skip the first entry, this is always the input file itself.
     for (std::vector<std::string>::iterator I = Files.begin() + 1,
            E = Files.end(); I != E; ++I) {
diff --git a/test/Frontend/dependency-generation-crash.c b/test/Frontend/dependency-generation-crash.c
new file mode 100644 (file)
index 0000000..181bb71
--- /dev/null
@@ -0,0 +1,4 @@
+// RUN: touch %t
+// RUN: chmod 0 %t
+// %clang -E -dependency-file bla -MT %t -MP -o %t -x c /dev/null
+// rdar://9286457