From: Kevin Buettner Date: Mon, 12 Jun 2023 22:21:06 +0000 (-0700) Subject: Simplify case DW_OP_GNU_uninit in dwarf_expr_context::execute_stack_op X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f3741bbd187aa594a7d647a8ad4152e6e423a9ca;p=binutils-gdb.git Simplify case DW_OP_GNU_uninit in dwarf_expr_context::execute_stack_op Tom Tromey pointed out that the test and call to error() for the DW_OP_GNU_uninit case in dwarf_expr_context::execute_stack_op (in gdb/dwarf2/expr.c)... if (op_ptr != op_end && *op_ptr != DW_OP_piece && *op_ptr != DW_OP_bit_piece) error (_("DWARF-2 expression error: DW_OP_GNU_uninit must always " "be the very last op in a DWARF expression or " "DW_OP_piece/DW_OP_bit_piece piece.")); ...could be replaced by a call to dwarf_expr_require_composition which performs a similar check and outputs a suitable error message. --- diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index 7e1666165d7..b21016eb38b 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -2200,12 +2200,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr, goto no_push; case DW_OP_GNU_uninit: - if (op_ptr != op_end && *op_ptr != DW_OP_piece - && *op_ptr != DW_OP_bit_piece) - error (_("DWARF-2 expression error: DW_OP_GNU_uninit must always " - "be the very last op in a DWARF expression or " - "DW_OP_piece/DW_OP_bit_piece piece.")); - + dwarf_expr_require_composition (op_ptr, op_end, "DW_OP_GNU_uninit"); this->m_initialized = false; goto no_push;