aboutsummaryrefslogtreecommitdiff
path: root/build2/algorithm.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-08-09 08:12:13 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-08-09 08:12:13 +0200
commit5352f2fb6b911c804e70ea98c1bb335c54fea6b5 (patch)
tree26eb3b8a4b871aedd76f5f7e5681ab060050ffc6 /build2/algorithm.cxx
parent1b01309cf61f45ffc5862a2c3da8c71324bc77b3 (diff)
Fix bug in inner/outer operation handling
Diffstat (limited to 'build2/algorithm.cxx')
-rw-r--r--build2/algorithm.cxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/build2/algorithm.cxx b/build2/algorithm.cxx
index fea3d25..a7126cc 100644
--- a/build2/algorithm.cxx
+++ b/build2/algorithm.cxx
@@ -69,7 +69,9 @@ namespace build2
// both inner and outer operations match.
//
for (operation_id oo (a.outer_operation ()), io (a.operation ()),
- o (oo != 0 ? oo : io); o != 0; o = (oo != 0 ? io : 0))
+ o (oo != 0 ? oo : io);
+ o != 0;
+ o = (oo != 0 && o != io ? io : 0))
{
// Adjust action for recipe: on the first iteration we want it
// {inner, outer} (which is the same as 'a') while on the second