aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build2/target.ixx5
1 files changed, 3 insertions, 2 deletions
diff --git a/build2/target.ixx b/build2/target.ixx
index 9b4b9d8..6225aef 100644
--- a/build2/target.ixx
+++ b/build2/target.ixx
@@ -73,12 +73,13 @@ namespace build2
group_state () const
{
// We go an extra step and short-circuit to the target state even if the
- // raw state is not group provided the recipe is group_recipe.
+ // raw state is not group provided the recipe is group_recipe and the
+ // state is not failed.
if (state_ == target_state::group)
return true;
- if (group != nullptr)
+ if (state_ != target_state::failed && group != nullptr)
{
if (recipe_function* const* f = recipe_.target<recipe_function*> ())
return *f == &group_action;