summaryrefslogtreecommitdiffstats
path: root/loc2c.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2009-09-24 13:05:41 -0700
committerRoland McGrath <roland@redhat.com>2009-09-24 13:06:31 -0700
commit2e2a5d82cfd03db7be2e9ff1457b5ea50e46bc3a (patch)
treee11572dbb27ac79da1acb29507b5b99b2d58991d /loc2c.h
parenta1c1924486c8a29451898a9fe0cb83c8b472a78e (diff)
downloadsystemtap-steved-2e2a5d82cfd03db7be2e9ff1457b5ea50e46bc3a.tar.gz
systemtap-steved-2e2a5d82cfd03db7be2e9ff1457b5ea50e46bc3a.tar.xz
systemtap-steved-2e2a5d82cfd03db7be2e9ff1457b5ea50e46bc3a.zip
Support DW_AT_const_value cases in loc2c and loc2c-test.
* loc2c.c (c_translate_constant): New function. * loc2c.h: Declare it. * loc2c-test.c (main): Use it for DW_AT_const_value cases.
Diffstat (limited to 'loc2c.h')
-rw-r--r--loc2c.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/loc2c.h b/loc2c.h
index becf2d85..e97f4d9b 100644
--- a/loc2c.h
+++ b/loc2c.h
@@ -41,6 +41,20 @@ struct location *c_translate_location (struct obstack *,
Dwarf_Attribute *fb_attr,
const Dwarf_Op *cfa_ops);
+/* Translate a fragment for a compile-time constant from DW_AT_const_value.
+ */
+struct location *c_translate_constant (struct obstack *,
+ void (*fail) (void *arg,
+ const char *fmt, ...)
+ __attribute__ ((noreturn,
+ format (printf, 2, 3))),
+ void *fail_arg,
+ void (*emit_address) (void *fail_arg,
+ struct obstack *,
+ Dwarf_Addr),
+ int indent, Dwarf_Addr dwbias,
+ Dwarf_Attribute *attr);
+
/* Translate a fragment to dereference the given DW_TAG_pointer_type DIE,
where *INPUT is the location of the pointer with that type. */
void c_translate_pointer (struct obstack *pool, int indent,