summaryrefslogtreecommitdiffstats
path: root/parse.cxx
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-07-16 11:29:59 -0400
committerDave Brolley <brolley@redhat.com>2009-07-16 11:29:59 -0400
commit451535e8b0b1018a51206283d89d233d37ea8621 (patch)
tree766a67ed307a252e20b0fe077cb7f52505b54571 /parse.cxx
parentaa3ed413744f9830c272dbcedc3fffd1974b53ea (diff)
parentf190c8d7aab46fbd15e33493cec7933c93d3c912 (diff)
downloadsystemtap-steved-451535e8b0b1018a51206283d89d233d37ea8621.tar.gz
systemtap-steved-451535e8b0b1018a51206283d89d233d37ea8621.tar.xz
systemtap-steved-451535e8b0b1018a51206283d89d233d37ea8621.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'parse.cxx')
-rw-r--r--parse.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/parse.cxx b/parse.cxx
index f3b9eb09..35c78abe 100644
--- a/parse.cxx
+++ b/parse.cxx
@@ -2239,6 +2239,18 @@ parser::parse_value ()
throw parse_error ("expected ')'");
return e;
}
+ else if (t->type == tok_operator && t->content == "&")
+ {
+ next ();
+ t = peek ();
+ if (t->type != tok_identifier ||
+ (t->content != "@cast" && t->content[0] != '$'))
+ throw parse_error ("expected @cast or $var");
+
+ target_symbol *ts = static_cast<target_symbol*>(parse_symbol());
+ ts->addressof = true;
+ return ts;
+ }
else if (t->type == tok_identifier)
return parse_symbol ();
else