diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-04-15 18:49:23 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-04-15 18:49:23 +0000 |
commit | 193f783a999426c65a1d4fb407d8095f248c155d (patch) | |
tree | b526ab4135f7015795c806629e266fbd959329fd | |
parent | cc647e093788314b870c7a528ae0c5d8f7c04a51 (diff) | |
download | bcm5719-llvm-193f783a999426c65a1d4fb407d8095f248c155d.tar.gz bcm5719-llvm-193f783a999426c65a1d4fb407d8095f248c155d.zip |
Fixes a crash when generating dependency file stuff
and output file is not writable. // rdar://9286457.
llvm-svn: 129587
-rw-r--r-- | clang/lib/Frontend/DependencyFile.cpp | 2 | ||||
-rw-r--r-- | clang/test/Frontend/dependency-generation-crash.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Frontend/DependencyFile.cpp b/clang/lib/Frontend/DependencyFile.cpp index bc5a55df086..5c3a23128a1 100644 --- a/clang/lib/Frontend/DependencyFile.cpp +++ b/clang/lib/Frontend/DependencyFile.cpp @@ -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/clang/test/Frontend/dependency-generation-crash.c b/clang/test/Frontend/dependency-generation-crash.c new file mode 100644 index 00000000000..181bb71f1b0 --- /dev/null +++ b/clang/test/Frontend/dependency-generation-crash.c @@ -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 |