forked from Imagelibrary/binutils-gdb
gdb/
* dwarf2expr.c (execute_stack_op): Support DW_OP_GNU_parameter_ref. * dwarf2loc.c (call_site_parameter_matches): Support CALL_SITE_PARAMETER_PARAM_OFFSET. (needs_dwarf_reg_entry_value): Push stub value. * dwarf2read.c (read_call_site_scope): New variable origin. Support CALL_SITE_PARAMETER_PARAM_OFFSET and its DW_AT_abstract_origin. * gdbtypes.h (enum call_site_parameter_kind): New item CALL_SITE_PARAMETER_PARAM_OFFSET. (struct call_site.parameter.u): New field param_offset. gdb/testsuite/ * gdb.arch/amd64-entry-value-param.S: New file. * gdb.arch/amd64-entry-value-param.c: New file. * gdb.arch/amd64-entry-value-param.exp: New file.
This commit is contained in:
@@ -1392,6 +1392,20 @@ execute_stack_op (struct dwarf_expr_context *ctx,
|
||||
"or for DW_OP_breg*(0)+DW_OP_deref*"));
|
||||
}
|
||||
|
||||
case DW_OP_GNU_parameter_ref:
|
||||
{
|
||||
union call_site_parameter_u kind_u;
|
||||
|
||||
kind_u.param_offset.cu_off = extract_unsigned_integer (op_ptr, 4,
|
||||
byte_order);
|
||||
op_ptr += 4;
|
||||
ctx->funcs->push_dwarf_reg_entry_value (ctx,
|
||||
CALL_SITE_PARAMETER_PARAM_OFFSET,
|
||||
kind_u,
|
||||
-1 /* deref_size */);
|
||||
}
|
||||
goto no_push;
|
||||
|
||||
case DW_OP_GNU_const_type:
|
||||
{
|
||||
cu_offset type_die;
|
||||
|
||||
Reference in New Issue
Block a user