summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/translate.cxx b/translate.cxx
index 27f6a04b..cdc3da84 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -4180,7 +4180,8 @@ c_unparser::visit_print_format (print_format* e)
prec_ix = arg_ix++;
/* Generate a noop call to deref_buffer for %m. */
- if (components[i].type == print_format::conv_memory) {
+ if (components[i].type == print_format::conv_memory
+ || components[i].type == print_format::conv_memory_hex) {
this->probe_or_function_needs_deref_fault_handler = true;
o->newline() << "deref_buffer (0, " << tmp[arg_ix].value() << ", ";
if (prec_ix == -1)
@@ -4241,7 +4242,8 @@ c_unparser::visit_print_format (print_format* e)
o->line() << ", (int)" << tmp[arg_ix++].value();
/* The type of the %m argument is 'char*'. */
- if (components[i].type == print_format::conv_memory)
+ if (components[i].type == print_format::conv_memory
+ || components[i].type == print_format::conv_memory_hex)
o->line() << ", (char*)(uintptr_t)" << tmp[arg_ix++].value();
/* The type of the %c argument is 'int'. */
else if (components[i].type == print_format::conv_char)