summaryrefslogtreecommitdiffstats
path: root/staptree.cxx
diff options
context:
space:
mode:
authorgraydon <graydon>2005-12-08 02:33:55 +0000
committergraydon <graydon>2005-12-08 02:33:55 +0000
commit71572ba8dfa3b045dfdcd0c8e0a2db168659ea10 (patch)
tree099a29d98018d4ca2e56a1e3cdf476680871eca0 /staptree.cxx
parent90b474e36fdcb17b1d57f8bb0c01d87b0f5e0a96 (diff)
downloadsystemtap-steved-71572ba8dfa3b045dfdcd0c8e0a2db168659ea10.tar.gz
systemtap-steved-71572ba8dfa3b045dfdcd0c8e0a2db168659ea10.tar.xz
systemtap-steved-71572ba8dfa3b045dfdcd0c8e0a2db168659ea10.zip
2005-12-07 Graydon Hoare <graydon@redhat.com>
* staptree.cxx (traversing_visitor::visit_foreach_loop): Visit the base indexable of the foreach loop. * translate.cxx (c_tmpcounter::visit_foreach_loop): Implement histogram bucket iteration arm. (c_unparser::visit_foreach_loop): Likewise. (c_tmpcounter::visit_arrayindex): Fix typo. * testsuite/buildok/iterate_histogram_buckets.stp: New test.
Diffstat (limited to 'staptree.cxx')
-rw-r--r--staptree.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/staptree.cxx b/staptree.cxx
index 2ad2d906..87c9b383 100644
--- a/staptree.cxx
+++ b/staptree.cxx
@@ -1245,6 +1245,14 @@ traversing_visitor::visit_for_loop (for_loop* s)
void
traversing_visitor::visit_foreach_loop (foreach_loop* s)
{
+ symbol *array = NULL;
+ hist_op *hist = NULL;
+ classify_indexable (s->base, array, hist);
+ if (array)
+ array->visit(this);
+ else
+ hist->visit(this);
+
for (unsigned i=0; i<s->indexes.size(); i++)
s->indexes[i]->visit (this);
s->block->visit (this);