summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2006-02-23 21:01:51 +0000
committerhunt <hunt>2006-02-23 21:01:51 +0000
commit58cf0567b5d6f06e320d169be722eefb3df2b2c1 (patch)
treead71d183e5775af724f6669836c78279db59eefc
parentaff9a0ecf38b32f94dca0cc8abad939dfbf03575 (diff)
downloadsystemtap-steved-58cf0567b5d6f06e320d169be722eefb3df2b2c1.tar.gz
systemtap-steved-58cf0567b5d6f06e320d169be722eefb3df2b2c1.tar.xz
systemtap-steved-58cf0567b5d6f06e320d169be722eefb3df2b2c1.zip
2006-02-23 Martin Hunt <hunt@redhat.com>
PR 1989. Adds support for %p in printf * staptree.h (struct print_format): Add conv_unsigned_ptr. * staptree.cxx (components_to_string): Output 'p' for conv_unsigned_ptr. * elaborate.cxx (visit_print_format): Add case for conv_unsigned_ptr.
-rw-r--r--ChangeLog15
-rw-r--r--elaborate.cxx1
-rw-r--r--staptree.cxx8
-rw-r--r--staptree.h1
4 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ca41ce71..453b9391 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,17 @@
2006-02-23 Martin Hunt <hunt@redhat.com>
- * Makefile.am (install-data-local): Create tapset/i686 and tapset/x86_64
- directories. This fixes a problem where they were included, but had
- bad permissions.
+ PR 1989. Adds support for %p in printf
+ * staptree.h (struct print_format): Add conv_unsigned_ptr.
+ * staptree.cxx (components_to_string): Output 'p'
+ for conv_unsigned_ptr.
+ * elaborate.cxx (visit_print_format): Add case for
+ conv_unsigned_ptr.
+
+2006-02-23 Martin Hunt <hunt@redhat.com>
+
+ * Makefile.am (install-data-local): Create tapset/i686 and
+ tapset/x86_64 directories. This fixes a problem where they
+ were included, but had bad permissions.
* Makefile.in: Rebuilt.
2006-02-22 Frank Ch. Eigler <fche@elastic.org>
diff --git a/elaborate.cxx b/elaborate.cxx
index a906bb87..48a3cbb3 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -2275,6 +2275,7 @@ typeresolution_info::visit_print_format (print_format* e)
case print_format::conv_signed_decimal:
case print_format::conv_unsigned_decimal:
case print_format::conv_unsigned_octal:
+ case print_format::conv_unsigned_ptr:
case print_format::conv_unsigned_uppercase_hex:
case print_format::conv_unsigned_lowercase_hex:
wanted = pe_long;
diff --git a/staptree.cxx b/staptree.cxx
index 74aa3964..6669e9ae 100644
--- a/staptree.cxx
+++ b/staptree.cxx
@@ -401,6 +401,10 @@ print_format::components_to_string(vector<format_component> const & components)
oss << "llo";
break;
+ case conv_unsigned_ptr:
+ oss << "p";
+ break;
+
case conv_unsigned_uppercase_hex:
oss << "llX";
break;
@@ -551,6 +555,10 @@ print_format::string_to_components(string const & str)
curr.type = conv_unsigned_decimal;
break;
+ case 'p':
+ curr.type = conv_unsigned_ptr;
+ break;
+
case 'X':
curr.type = conv_unsigned_uppercase_hex;
break;
diff --git a/staptree.h b/staptree.h
index cde87372..bb472507 100644
--- a/staptree.h
+++ b/staptree.h
@@ -277,6 +277,7 @@ struct print_format: public expression
conv_signed_decimal,
conv_unsigned_decimal,
conv_unsigned_octal,
+ conv_unsigned_ptr,
conv_unsigned_uppercase_hex,
conv_unsigned_lowercase_hex,
conv_string,