summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
diff options
context:
space:
mode:
authorfche <fche>2006-04-21 19:51:43 +0000
committerfche <fche>2006-04-21 19:51:43 +0000
commit35d4ab18d5d333ffcac436ea174beb7201275c65 (patch)
tree0c785d3b462cc7ca483f105639057239ac38da84 /elaborate.cxx
parentf9db95d019b4936d62c9b3e021aecc2dfb653dcf (diff)
downloadsystemtap-steved-35d4ab18d5d333ffcac436ea174beb7201275c65.tar.gz
systemtap-steved-35d4ab18d5d333ffcac436ea174beb7201275c65.tar.xz
systemtap-steved-35d4ab18d5d333ffcac436ea174beb7201275c65.zip
2006-04-21 Frank Ch. Eigler <fche@elastic.org>
PR 953 * elaborate.h (derived_probe): Add field "name". Stop passing "probe index" to other emit_* calls. (emit_probe_context_vars): New member function. * elaborate.cxx (derived_probe ctor): Generate unique name. * translate.cxx (*): Adapt to index->name. (emit_probe): Realize that probe locals only occur at nesting=0. * tapsets.cxx (*derived_probe::emit_*): Adapt to index->name. (mark_var_expanding_copy_visitor): New class to process $argN. (mark_derived_probe ctor): Call it. (mark_derived_probe::emit_probe_context_vars): Do it. * buildrun.cxx (compile_pass): Add more optional gcc verbosity. Add CFLAGS += -freorder-blocks. * testsuite/buildok/marker.stp: New test.
Diffstat (limited to 'elaborate.cxx')
-rw-r--r--elaborate.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/elaborate.cxx b/elaborate.cxx
index ea394f94..3db165d4 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -39,9 +39,13 @@ lex_cast(IN const & in)
// ------------------------------------------------------------------------
+unsigned derived_probe::last_probeidx = 0;
+
derived_probe::derived_probe (probe *p):
base (p)
{
+ this->name = string ("probe_") + lex_cast<string>(last_probeidx ++);
+
if (p)
{
this->locations = p->locations;
@@ -54,8 +58,11 @@ derived_probe::derived_probe (probe *p):
derived_probe::derived_probe (probe *p, probe_point *l):
base (p)
{
+ this->name = string ("probe_") + lex_cast<string>(last_probeidx ++);
+
if (l)
this->locations.push_back (l);
+
if (p)
{
this->tok = p->tok;