summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2024-04-08 20:20:44 (GMT)
committerGitHub <noreply@github.com>2024-04-08 20:20:44 (GMT)
commitd7bb3f397db674396eae37ee49173d7eaaf216ab (patch)
treec29ed914854816cea3732db31e3e1638031aad5e /src
parent903a05ce0e9befa8fb2767dd83a5a36499771087 (diff)
parente3f44dd45625795e7b4b4b9877faff6ee9c07b5b (diff)
downloadNinja-d7bb3f397db674396eae37ee49173d7eaaf216ab.zip
Ninja-d7bb3f397db674396eae37ee49173d7eaaf216ab.tar.gz
Ninja-d7bb3f397db674396eae37ee49173d7eaaf216ab.tar.bz2
Merge pull request #2406 from dcbaker/submit/cleandad-fixes
Fix cleanded with dyndeps
Diffstat (limited to 'src')
-rw-r--r--src/clean.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/clean.cc b/src/clean.cc
index 575bf6b..ceffe64 100644
--- a/src/clean.cc
+++ b/src/clean.cc
@@ -127,6 +127,7 @@ int Cleaner::CleanAll(bool generator) {
int Cleaner::CleanDead(const BuildLog::Entries& entries) {
Reset();
PrintHeader();
+ LoadDyndeps();
for (BuildLog::Entries::const_iterator i = entries.begin(); i != entries.end(); ++i) {
Node* n = state_->LookupNode(i->first);
// Detecting stale outputs works as follows:
@@ -292,7 +293,8 @@ void Cleaner::LoadDyndeps() {
// Load dyndep files that exist, before they are cleaned.
for (vector<Edge*>::iterator e = state_->edges_.begin();
e != state_->edges_.end(); ++e) {
- if (Node* dyndep = (*e)->dyndep_) {
+ Node* dyndep;
+ if ((dyndep = (*e)->dyndep_) && dyndep->dyndep_pending()) {
// Capture and ignore errors loading the dyndep file.
// We clean as much of the graph as we know.
std::string err;