aboutsummaryrefslogtreecommitdiff
path: root/build2/parser.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/parser.cxx')
-rw-r--r--build2/parser.cxx18
1 files changed, 10 insertions, 8 deletions
diff --git a/build2/parser.cxx b/build2/parser.cxx
index 9d118e8..ec9d9e4 100644
--- a/build2/parser.cxx
+++ b/build2/parser.cxx
@@ -693,14 +693,16 @@ namespace build2
dir_path (),
move (pn.value),
move (e),
- tgs.back ());
+ *scope_);
- // Move last prerequisite (which will normally be the only one).
- //
- for (target& t: tgs)
- t.prerequisites.push_back (&t == &p.owner
- ? move (p)
- : prerequisite (p, t));
+ for (auto i (tgs.begin ()), e (tgs.end ()); i != e; )
+ {
+ // Move last prerequisite (which will normally be the only
+ // one).
+ //
+ target& t (*i);
+ t.prerequisites.push_back (++i == e ? move (p) : p);
+ }
}
}
@@ -3552,7 +3554,7 @@ namespace build2
false, // Enter as real (not implied).
trace).first);
- ct.prerequisites.emplace_back (dt, ct);
+ ct.prerequisites.emplace_back (prerequisite (dt));
}
void parser::