diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2010-02-23 20:31:00 -0500 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2010-02-23 20:31:00 -0500 |
commit | 30263a7389d5c2712536b74656193708bbc64d49 (patch) | |
tree | b10b72dd3db455abf95a8ab21c540069c0143860 /tapsets.h | |
parent | d6c273473f7bea4d696c95ca48d55ca26e25ab2f (diff) | |
download | systemtap-steved-30263a7389d5c2712536b74656193708bbc64d49.tar.gz systemtap-steved-30263a7389d5c2712536b74656193708bbc64d49.tar.xz systemtap-steved-30263a7389d5c2712536b74656193708bbc64d49.zip |
PR11005: @defined($tvar) predicate, part 1
* staptree.h (defined_op): New class.
* all files: Extend all visitors as appropriate, mostly
dummy/pass-through implementation.
* parse.cxx (parse_target_symbol): New function, factored out
of parse_symbol().
(parse_define_op): New function.
* NEWS: Mention it.
* parse.h: Corresponding changes.
* tapsets.cxx (var_expanding_visitor::visit_defined_op):
Implement @defined() semantics.
(dwarf_var_expanding_visitor::visit_target_symbol): Adjust.
* tapset-utrace.c (visit_target_symbol_arg): Avoid crashes
on $argZZZ.
* tapsets.cxx (sdt_var_expanding_visitor): Ditto.
* semok/thirtysix.stp: New test.
Diffstat (limited to 'tapsets.h')
-rw-r--r-- | tapsets.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1,5 +1,5 @@ // -*- C++ -*- -// Copyright (C) 2005, 2009 Red Hat Inc. +// Copyright (C) 2005-2010 Red Hat Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General @@ -49,9 +49,11 @@ struct var_expanding_visitor: public update_visitor { static unsigned tick; std::stack<functioncall**> target_symbol_setter_functioncalls; + std::stack<defined_op*> defined_ops; var_expanding_visitor() {} void visit_assignment (assignment* e); + void visit_defined_op (defined_op* e); }; #endif // TAPSETS_H |