* dwarf2loc.c (unimplemented): Handle unnamed opcodes.

(compile_dwarf_to_ax) <default>: Use unimplemented.
	<DW_OP_deref>: Update.
	(disassemble_dwarf_expression): Update.
	* dwarf2read.c (dwarf_stack_op_name): Remove 'def' argument.
	(decode_locdesc): Update.
	* dwarf2expr.h (dwarf_stack_op_name): Update.
This commit is contained in:
Tom Tromey
2011-02-16 21:32:05 +00:00
parent 5f1e6f1949
commit b1bfef6533
4 changed files with 37 additions and 10 deletions

View File

@ -1334,8 +1334,14 @@ dwarf2_loc_desc_needs_frame (const gdb_byte *data, unsigned short size,
static void
unimplemented (unsigned int op)
{
error (_("DWARF operator %s cannot be translated to an agent expression"),
dwarf_stack_op_name (op, 1));
const char *name = dwarf_stack_op_name (op);
if (name)
error (_("DWARF operator %s cannot be translated to an agent expression"),
name);
else
error (_("Unknown DWARF operator 0x%02x cannot be to an agent expression"),
op);
}
/* A helper function to convert a DWARF register to an arch register.
@ -1793,8 +1799,10 @@ compile_dwarf_to_ax (struct agent_expr *expr, struct axs_value *loc,
ax_simple (expr, aop_ref64);
break;
default:
/* Note that dwarf_stack_op_name will never return
NULL here. */
error (_("Unsupported size %d in %s"),
size, dwarf_stack_op_name (op, 1));
size, dwarf_stack_op_name (op));
}
}
break;
@ -2070,7 +2078,7 @@ compile_dwarf_to_ax (struct agent_expr *expr, struct axs_value *loc,
unimplemented (op);
default:
error (_("Unhandled dwarf expression opcode 0x%x"), op);
unimplemented (op);
}
}
@ -2295,7 +2303,7 @@ disassemble_dwarf_expression (struct ui_file *stream,
LONGEST l;
const char *name;
name = dwarf_stack_op_name (op, 0);
name = dwarf_stack_op_name (op);
if (!name)
error (_("Unrecognized DWARF opcode 0x%02x at %ld"),