mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
gdb
* dwarf2loc.c (extract_bits_primitive): New function. (extract_bits): Likewise. (insert_bits): Likewise. (copy_bitwise): Likewise. (read_pieced_value): Do all operations in bits. (write_pieced_value): Likewise. * dwarf2expr.h (struct dwarf_expr_piece) <offset>: New field. * dwarf2expr.c (add_piece): New arguments bit_piece, offset. Always use xrealloc to resize piece array. (execute_stack_op) <DW_OP_reg0>: Handle DW_OP_bit_piece. <DW_OP_piece>: Update. <DW_OP_bit_piece>: New case. gdb/testsuite * gdb.dwarf2/pieces.exp (pieces_test_f3): New proc. Call it. * gdb.dwarf2/pieces.S: Update. * gdb.dwarf2/pieces.c (struct B): Remove initial field.
This commit is contained in:
@@ -155,7 +155,7 @@ struct dwarf_expr_context
|
||||
};
|
||||
|
||||
|
||||
/* A piece of an object, as recorded by DW_OP_piece. */
|
||||
/* A piece of an object, as recorded by DW_OP_piece or DW_OP_bit_piece. */
|
||||
struct dwarf_expr_piece
|
||||
{
|
||||
enum dwarf_value_location location;
|
||||
@@ -181,8 +181,10 @@ struct dwarf_expr_piece
|
||||
} literal;
|
||||
} v;
|
||||
|
||||
/* The length of the piece, in bytes. */
|
||||
/* The length of the piece, in bits. */
|
||||
ULONGEST size;
|
||||
/* The piece offset, in bits. */
|
||||
ULONGEST offset;
|
||||
};
|
||||
|
||||
struct dwarf_expr_context *new_dwarf_expr_context (void);
|
||||
|
||||
Reference in New Issue
Block a user