summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
diff options
context:
space:
mode:
authorfche <fche>2006-01-26 22:55:20 +0000
committerfche <fche>2006-01-26 22:55:20 +0000
commit3066c15c5313ba37afb518ef13d207c764a8ad2a (patch)
tree1fdbc217129e2f46ca4a977f9685bf2a0c27b726 /elaborate.cxx
parent65bf1df7d18eae25ae865b5179395a339cc9d283 (diff)
downloadsystemtap-steved-3066c15c5313ba37afb518ef13d207c764a8ad2a.tar.gz
systemtap-steved-3066c15c5313ba37afb518ef13d207c764a8ad2a.tar.xz
systemtap-steved-3066c15c5313ba37afb518ef13d207c764a8ad2a.zip
2006-01-26 Frank Ch. Eigler <fche@elastic.org>
PR 2060: lock elevation, mop-up * staptree.cxx (functioncall_traversing_visitor): Store a current_function pointer during traversal. (visit_embeddedcode): Use it to handle $target-synthesized functions. (varuse_collecting_visitor::visit_assignment): Correct l-lr typo. (visit_foreach_loop): Note added write on sorted foreach. (visit_delete_statement): Note as read+write. * staptree.h: Corresponding changes. * elaborate.cxx (dead_assignment_remover::visit_expr_statement): Correct stmt token after possible expression rewriting. * tapsets.cxx (visit_target_symbol): Create naming convention to recognize $target-synthesized functions. * translate.cxx (emit_locks, emit_unlocks): New functions to emit lock/unlock sequences at the outermost level of a probe. (emit_probe): Call them. (varlock_*): #if-0 out the lock code generation. Later, these classes should be removed. (translate_pass): Emit read_trylock() kludge macro for old kernels.
Diffstat (limited to 'elaborate.cxx')
-rw-r--r--elaborate.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/elaborate.cxx b/elaborate.cxx
index 613d85ae..b0f784d4 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -1303,6 +1303,7 @@ dead_assignment_remover::visit_expr_statement (expr_statement* s)
expression** last_expr = current_expr;
current_expr = & s->value;
s->value->visit (this);
+ s->tok = s->value->tok; // in case it was replaced
current_expr = last_expr;
}