diff options
Diffstat (limited to 'src/build.cc')
-rw-r--r-- | src/build.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/build.cc b/src/build.cc index 2d3d9b4..5e874df 100644 --- a/src/build.cc +++ b/src/build.cc @@ -873,7 +873,7 @@ void Builder::FinishCommand(CommandRunner::Result* result) { } if (!deps_type.empty()) { - assert(edge->outputs_.size() == 1); + assert(edge->outputs_.size() == 1 && "should have been rejected by parser"); Node* out = edge->outputs_[0]; TimeStamp mtime = disk_interface_->Stat(out->path()); // XXX we could reuse the restat logic to avoid a second stat, @@ -899,8 +899,10 @@ bool Builder::ExtractDeps(CommandRunner::Result* result, #endif if (deps_type == "gcc") { string depfile = result->edge->GetBinding("depfile"); - if (depfile.empty()) - return true; // No dependencies to load. + if (depfile.empty()) { + *err = string("edge with deps=gcc but no depfile makes no sense\n"); + return false; + } string content = disk_interface_->ReadFile(depfile, err); if (!err->empty()) @@ -922,7 +924,7 @@ bool Builder::ExtractDeps(CommandRunner::Result* result, } if (disk_interface_->RemoveFile(depfile) < 0) { - *err = string("deleting depfile: ") + strerror(errno); + *err = string("deleting depfile: ") + strerror(errno) + string("\n"); return false; } } else { |