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/