summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
authorfche <fche>2005-07-29 19:30:20 +0000
committerfche <fche>2005-07-29 19:30:20 +0000
commit398909a9aee8a55916e4b1cd8626826397250fc8 (patch)
treed1bacd907310efe5a00d7159829d919ac098c9b5 /tapsets.cxx
parent044df7fa4377ecfa3202a925ff6c5b3a5d576186 (diff)
downloadsystemtap-steved-398909a9aee8a55916e4b1cd8626826397250fc8.tar.gz
systemtap-steved-398909a9aee8a55916e4b1cd8626826397250fc8.tar.xz
systemtap-steved-398909a9aee8a55916e4b1cd8626826397250fc8.zip
2005-07-29 Frank Ch. Eigler <fche@redhat.com>
From Graydon Hoare <graydon@redhat.com: * tapsets.cxx (var_expanding_copy_visitor): Correct lvalue cases.
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx15
1 files changed, 9 insertions, 6 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 824c4dd4..e6d1c7dd 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1107,29 +1107,33 @@ var_expanding_copy_visitor
void visit_pre_crement (pre_crement* e)
{
++lval_depth;
- e->operand->visit (this);
+ deep_copy_visitor::visit_pre_crement (e);
--lval_depth;
}
void visit_post_crement (post_crement* e)
{
++lval_depth;
- e->operand->visit (this);
+ deep_copy_visitor::visit_post_crement (e);
--lval_depth;
}
void visit_assignment (assignment* e)
{
+ assignment* n = new assignment;
+ n->op = e->op;
+ n->tok = e->tok;
++lval_depth;
- e->left->visit (this);
+ require <expression*> (this, &(n->left), e->left);
--lval_depth;
- e->right->visit (this);
+ require <expression*> (this, &(n->right), e->right);
+ provide <assignment*> (this, n);
}
void visit_delete_statement (delete_statement* s)
{
++lval_depth;
- s->value->visit (this);
+ deep_copy_visitor::visit_delete_statement (s);
--lval_depth;
}
@@ -1428,7 +1432,6 @@ dwarf_builder::build(systemtap_session & sess,
}
-
// ------------------------------------------------------------------------
// Standard tapset registry.
// ------------------------------------------------------------------------