Merge branch 'dont-clean-phony' of git://github.com/pcc/ninja
authorEvan Martin <martine@danga.com>
Thu, 26 Apr 2012 03:13:10 +0000 (20:13 -0700)
committerEvan Martin <martine@danga.com>
Thu, 26 Apr 2012 03:13:10 +0000 (20:13 -0700)
Conflicts:
src/clean.cc

1  2 
src/clean.cc
src/clean_test.cc

diff --cc src/clean.cc
@@@ -123,14 -123,14 +123,16 @@@ int Cleaner::CleanAll(bool generator) 
  }
  
  void Cleaner::DoCleanTarget(Node* target) {
-   if (target->in_edge()) {
-     Remove(target->path());
-     if (!target->in_edge()->rule().depfile().empty())
-       Remove(target->in_edge()->EvaluateDepFile());
-     if (target->in_edge()->HasRspFile())
-       Remove(target->in_edge()->GetRspFile());
-     for (vector<Node*>::iterator n = target->in_edge()->inputs_.begin();
-          n != target->in_edge()->inputs_.end();
+   if (Edge* e = target->in_edge()) {
+     // Do not try to remove phony targets
+     if (!e->is_phony()) {
+       Remove(target->path());
++      if (!target->in_edge()->rule().depfile().empty())
++        Remove(target->in_edge()->EvaluateDepFile());
+       if (e->HasRspFile())
+         Remove(e->GetRspFile());
+     }
+     for (vector<Node*>::iterator n = e->inputs_.begin(); n != e->inputs_.end();
           ++n) {
        DoCleanTarget(*n);
      }
Simple merge