diff options
author | fche <fche> | 2005-10-07 19:09:02 +0000 |
---|---|---|
committer | fche <fche> | 2005-10-07 19:09:02 +0000 |
commit | 934845563af3c85df78c17ee4752caa100ea6157 (patch) | |
tree | 1bba25b9e1e6c035720a8115c4fb212306453a8f /translate.cxx | |
parent | 9f0f2d3f93a63c91f817fda7e4e4cd02884a9084 (diff) | |
download | systemtap-steved-934845563af3c85df78c17ee4752caa100ea6157.tar.gz systemtap-steved-934845563af3c85df78c17ee4752caa100ea6157.tar.xz systemtap-steved-934845563af3c85df78c17ee4752caa100ea6157.zip |
2005-10-07 Frank Ch. Eigler <fche@elastic.org>
PR 1366.
* staptree.h (foreach_loop): Add sort_column, sort_direction fields.
* parse.cxx (parse_foreach_loop): Parse "+"/"-" suffix operators.
* stap.1.in, stapex.5.in: Document them.
* staptree.cxx (foreach_loop print, copy): Propagate them.
* translate.cxx (visit_foreach_loop): Support them.
* testsuite/parseok/fifteen.stp, parseko/thirteen.stp,
buildok/twentyone.stp: Test them.
2005-10-07 Frank Ch. Eigler <fche@elastic.org>
PR 1366.
* systemtap.samples/primes.*: Sort foreach gratuitiously.
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx index 276382e5..bd1f576a 100644 --- a/translate.cxx +++ b/translate.cxx @@ -1538,6 +1538,12 @@ c_unparser::visit_foreach_loop (foreach_loop *s) // // varlock_r guard (*this, mv); + // sort array if desired + if (s->sort_direction) + o->newline() << "_stp_map_sort (" << mv.qname() << ", " + << s->sort_column << ", " << - s->sort_direction << ");"; + // NB: sort direction sense is opposite in runtime, thus the negation + o->newline() << iv << " = " << iv.start (mv) << ";"; // condition |