summaryrefslogtreecommitdiffstats
path: root/staptree.h
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2010-02-25 13:33:28 -0500
committerFrank Ch. Eigler <fche@elastic.org>2010-02-25 13:38:50 -0500
commitc69a87e094e5e66daee8399838c8475f023ddc04 (patch)
tree4136d58cbebed28ccd40d3d983aac8179ed6ce1f /staptree.h
parente7227e90cd1414b2d02884617da0346134892526 (diff)
downloadsystemtap-steved-c69a87e094e5e66daee8399838c8475f023ddc04.tar.gz
systemtap-steved-c69a87e094e5e66daee8399838c8475f023ddc04.tar.xz
systemtap-steved-c69a87e094e5e66daee8399838c8475f023ddc04.zip
PR11005: @defined part 2: clarify/standardize internal handling of unresolvable $variables
* staptree.cxx (target_symbol::chain): New function. * staptree.h: Declare it. * (*): Use it instead of hand-chaining to target_symbol->saved_conversion_error. * tapset-mark.cxx (*::visit_target_symbol): Chain resolution error object, do not throw. * tapset-procfs.cxx (*::visit_target_symbol): Ditto. * tapset-utrace.cxx (*::visit_target_symbol): Ditto. * tapsets.cxx (*::visit_target_symbol): Ditto. (*::visit_defined_op): Explain & enforce the above. * testsuite/semok/thirtysix.stp: Expand. * testsuite/systemtap.base/sdt_misc.exp: Bonus fix: make work with blddir != srcdir.
Diffstat (limited to 'staptree.h')
-rw-r--r--staptree.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/staptree.h b/staptree.h
index 62ce37fe..0ad6e9c2 100644
--- a/staptree.h
+++ b/staptree.h
@@ -255,8 +255,9 @@ struct target_symbol: public symbol
std::string base_name;
std::vector<component> components;
std::string probe_context_var; // NB: this being set implies that target_symbol is *resolved*
- semantic_error* saved_conversion_error;
+ semantic_error* saved_conversion_error; // hand-made linked list
target_symbol(): addressof(false), saved_conversion_error (0) {}
+ void chain (semantic_error* e);
void print (std::ostream& o) const;
void visit (visitor* u);
void visit_components (visitor* u);