From 934845563af3c85df78c17ee4752caa100ea6157 Mon Sep 17 00:00:00 2001 From: fche Date: Fri, 7 Oct 2005 19:09:02 +0000 Subject: 2005-10-07 Frank Ch. Eigler 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 PR 1366. * systemtap.samples/primes.*: Sort foreach gratuitiously. --- testsuite/buildok/twentyone.stp | 27 +++++++++++++++++++++++++++ testsuite/parseko/fifteen.stp | 6 ++++++ testsuite/parseko/fourteen.stp | 2 +- testsuite/parseok/thirteen.stp | 8 ++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 testsuite/buildok/twentyone.stp create mode 100755 testsuite/parseko/fifteen.stp create mode 100755 testsuite/parseok/thirteen.stp (limited to 'testsuite') diff --git a/testsuite/buildok/twentyone.stp b/testsuite/buildok/twentyone.stp new file mode 100755 index 00000000..052c3a17 --- /dev/null +++ b/testsuite/buildok/twentyone.stp @@ -0,0 +1,27 @@ +#! stap -p4 + +global a + +probe begin { + a[5] = 0 + a[4] = 2 + a[3] = 5 + a[2] = 8 + a[1] = 1 + a[0] = -4 + exit () +} + +probe end { + log ("x+ in a") + foreach (x+ in a) log ("a[" . string(x) . "]=" . string(a[x])) + + log ("x- in a") + foreach (x- in a) log ("a[" . string(x) . "]=" . string(a[x])) + + log ("x in a+") + foreach (x in a+) log ("a[" . string(x) . "]=" . string(a[x])) + + log ("x in a-") + foreach (x in a-) log ("a[" . string(x) . "]=" . string(a[x])) +} diff --git a/testsuite/parseko/fifteen.stp b/testsuite/parseko/fifteen.stp new file mode 100755 index 00000000..35208740 --- /dev/null +++ b/testsuite/parseko/fifteen.stp @@ -0,0 +1,6 @@ +#! stap -p1 + +probe begin +{ + foreach ([x+,y-] in a) {} +} diff --git a/testsuite/parseko/fourteen.stp b/testsuite/parseko/fourteen.stp index b646f8b6..32a8979a 100755 --- a/testsuite/parseko/fourteen.stp +++ b/testsuite/parseko/fourteen.stp @@ -1,4 +1,4 @@ -#! stap -p2 +#! stap -p1 function zoo () %{ /* invalid embedded code */ %} diff --git a/testsuite/parseok/thirteen.stp b/testsuite/parseok/thirteen.stp new file mode 100755 index 00000000..7c8c5d4b --- /dev/null +++ b/testsuite/parseok/thirteen.stp @@ -0,0 +1,8 @@ +#! stap -p1 + +probe one +{ + foreach ([x+,y] in a) ; + foreach ([x,y-] in a) ; + foreach ([x,y] in a+) ; +} -- cgit