diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-07-19 08:25:35 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-07-19 08:25:35 +0200 |
commit | f0e0c9ce34310070f7a7547d9262deef59751407 (patch) | |
tree | 6534503e02b0fac9f88e7ea9ade195fe26afda36 | |
parent | 1db478cb8a51cd0adc44b66e7ec10fd44261adf2 (diff) |
Fix bug in target::matched()
-rw-r--r-- | libbuild2/cc/common.cxx | 7 | ||||
-rw-r--r-- | libbuild2/target.ixx | 7 |
2 files changed, 7 insertions, 7 deletions
diff --git a/libbuild2/cc/common.cxx b/libbuild2/cc/common.cxx index 3b49d58..3c4e38d 100644 --- a/libbuild2/cc/common.cxx +++ b/libbuild2/cc/common.cxx @@ -597,12 +597,7 @@ namespace build2 const char* w (nullptr); if (t.ctx.phase == run_phase::match) { - size_t o ( - t.state[a].task_count.load (memory_order_consume) - - t.ctx.count_base ()); - - if (o != target::offset_applied && - o != target::offset_executed) + if (!t.matched (a)) w = "not matched"; } else if (t.mtime () == timestamp_unknown) diff --git a/libbuild2/target.ixx b/libbuild2/target.ixx index 5432f7c..899e829 100644 --- a/libbuild2/target.ixx +++ b/libbuild2/target.ixx @@ -245,7 +245,12 @@ namespace build2 if (ctx.phase == run_phase::match) { - return c == offset_applied; + // While it will normally be applied, it could also be already executed. + // + // Note that we can't do >= offset_applied since offset_busy means it is + // being matched. + // + return c == offset_applied || c == offset_executed; } else { |