summaryrefslogtreecommitdiffstats
path: root/loc2c.h
diff options
context:
space:
mode:
authorroland <roland>2005-08-11 04:27:29 +0000
committerroland <roland>2005-08-11 04:27:29 +0000
commit2413637c34d38c843c41386f616bc5478cf773ff (patch)
tree1f4d2eb66836e0e59c9204377dfe67c0ae60e47b /loc2c.h
parenta12eba57546fc58bc29ceca9556ed897b2993960 (diff)
downloadsystemtap-steved-2413637c34d38c843c41386f616bc5478cf773ff.tar.gz
systemtap-steved-2413637c34d38c843c41386f616bc5478cf773ff.tar.xz
systemtap-steved-2413637c34d38c843c41386f616bc5478cf773ff.zip
2005-08-10 Roland McGrath <roland@redhat.com>
* loc2c.c (emit_base_store): New function. (emit_bitfield): Rewritten to handle stores, change parameters. (c_translate_fetch): Update caller. (c_translate_store): New function. * loc2c.h: Declare it. * loc2c-test.c (handle_variable): Grok "=" last argument to do a store.
Diffstat (limited to 'loc2c.h')
-rw-r--r--loc2c.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/loc2c.h b/loc2c.h
index 75467010..af681bad 100644
--- a/loc2c.h
+++ b/loc2c.h
@@ -47,13 +47,21 @@ void c_translate_addressof (struct obstack *pool, int indent,
struct location **input, const char *target);
/* Translate a fragment to fetch the value of variable or member DIE
- at the *INPUT location and store it in variable TARGET.
+ at the *INPUT location and store it in lvalue TARGET.
This handles base integer types and bit fields. */
void c_translate_fetch (struct obstack *pool, int indent,
Dwarf_Addr dwbias __attribute__ ((unused)),
Dwarf_Die *die, Dwarf_Attribute *typeattr,
struct location **input, const char *target);
+/* Translate a fragment to locate the value of variable or member DIE
+ at the *INPUT location and set it to the C expression RVALUE.
+ This handles base integer types and bit fields. */
+void c_translate_store (struct obstack *pool, int indent,
+ Dwarf_Addr dwbias __attribute__ ((unused)),
+ Dwarf_Die *die, Dwarf_Attribute *typeattr,
+ struct location **input, const char *rvalue);
+
/* Emit the C fragment built up at LOC (i.e., the return value from the
first c_translate_location call made). INDENT should match that
passed to c_translate_* previously.