From 619d9aaf011c975159a79d34259083a596162bf1 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 7 Jul 2009 14:35:10 +0200 Subject: Add support for constant struct member field offsets. * loc2c.h (c_translate_add_offset): New function prototype. * loc2c.c (c_translate_add_offset): New function implementation. * loc2c-test.c (handle_variable): Use c_translate_add_offset if appropriate. * dwflpp.cxx (translate_location): Likewise. --- loc2c.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'loc2c.h') diff --git a/loc2c.h b/loc2c.h index 0ad5ae99..eb1f39d6 100644 --- a/loc2c.h +++ b/loc2c.h @@ -85,6 +85,13 @@ c_translate_pointer_store (struct obstack *pool, int indent, Dwarf_Die *typedie, struct location **input, const char *rvalue); +/* Translate a fragment to add an offset to the currently calculated + address of the input location. Used for struct fields. Only works + when location is already an actual base address. */ +void +c_translate_add_offset (struct obstack *pool, int indent, const char *comment, + Dwarf_Sword off, struct location **input); + /* Translate a C fragment for a direct argument VALUE. On errors, call FAIL, which should not return. Any later errors will use FAIL and FAIL_ARG from this translate call. On success, return the fragment created. */ -- cgit