summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2010-02-25 17:06:30 -0800
committerJosh Stone <jistone@redhat.com>2010-02-25 17:08:11 -0800
commit780f11fff7829a952ded0308f5ee47c65bbfc1c0 (patch)
tree190f2a4e3fb503ae438966472f7d3678936d5da2
parent3af79eaaba1d8c68558c77f9a2d72c57fa4b2c6c (diff)
downloadsystemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.tar.gz
systemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.tar.xz
systemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.zip
Expand the comment around @defined pass-through
-rw-r--r--tapsets.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index d470b043..3c1ea5d2 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1960,7 +1960,7 @@ var_expanding_visitor::visit_defined_op (defined_op* e)
// Successes have to result in an attempted rewrite of the
// target_symbol (via provide()), or setting the probe_context_var
// (ugh).
- //
+ //
// Edna Mode: "no capes". fche: "no exceptions".
// dwarf stuff: success: rewrites to a function; failure: retains target_symbol, sets saved_conversion_error
@@ -1971,7 +1971,7 @@ var_expanding_visitor::visit_defined_op (defined_op* e)
// dwarf probe to take care of it.
// But this is rather unhelpful. So we rig the sdt_var_expanding_visitor
// to pass through @defined() to the synthetic dwarf probe.
- //
+ //
// utrace: success: rewrites to function; failure: semantic_error
//
// procfs: success: sets probe_context_var; failure: semantic_error
@@ -1983,14 +1983,16 @@ var_expanding_visitor::visit_defined_op (defined_op* e)
resolved = true;
else if (foo2) // unresolved but not marked either way
{
- // it might be resolved by some other pass
+ // There are some visitors that won't touch certain target_symbols,
+ // e.g. dwarf_var_expanding_visitor won't resolve @cast. We should
+ // leave it for now so some other visitor can have a chance.
e->operand = foo2;
provide (e);
return;
}
else // resolved, rewritten to some other expression type
resolved = true;
- } catch (const semantic_error& e) {
+ } catch (const semantic_error& e) {
assert (0); // should not happen
}
defined_ops.pop ();