diff options
author | Josh Stone <jistone@redhat.com> | 2010-02-25 17:06:30 -0800 |
---|---|---|
committer | Josh Stone <jistone@redhat.com> | 2010-02-25 17:08:11 -0800 |
commit | 780f11fff7829a952ded0308f5ee47c65bbfc1c0 (patch) | |
tree | 190f2a4e3fb503ae438966472f7d3678936d5da2 | |
parent | 3af79eaaba1d8c68558c77f9a2d72c57fa4b2c6c (diff) | |
download | systemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.tar.gz systemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.tar.xz systemtap-steved-780f11fff7829a952ded0308f5ee47c65bbfc1c0.zip |
Expand the comment around @defined pass-through
-rw-r--r-- | tapsets.cxx | 10 |
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 (); |