Follow-up Comment #7, bug #61042 (project make): There are 2 situations when implicit rule lookup takes this short cut.
1. ++++ hello.tsk: hello.o %.tsk: %.o; touch $@ ---- and 2. ++++ hello.tsk: %.tsk: %.o; touch $@ hello.o: ---- There are 2 if branches in implicit.c This branch handles the case 1 described above. ++++ for (expl_d = file->deps; expl_d != 0; expl_d = expl_d->next) if (streq (dep_name (expl_d), d->name)) break; if (expl_d != 0) { (pat++)->name = d->name; continue; } ---- and This branch handles the case 2 described above. ++++ f = lookup_file (d->name); if (f /* || ((!dep->changed || check_lastslash) */ || file_exists_p (d->name)) { (pat++)->name = d->name; continue; } ---- This patch has both if branches combined to handle both cases, because the handling is the same. The conflict was introduced by this fix to set f->is_explicit. Let me merge master onto my branch and resubmit. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?61042> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/