aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-12-17 08:01:36 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-12-17 08:01:36 +0200
commit733aa97b5c0024a7856df7a571b542742f0f3e65 (patch)
treef36bdd700b637aa5070aabcd3e30555d7b01db95
parentae5cab7489fe014dd3aa818cf2655d7a4714af83 (diff)
Don't look for group recipe if target state is failed
-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;