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.
This commit is contained in:
Kevin Buettner
2023-06-12 15:21:06 -07:00
parent 9af6e8c6df
commit f3741bbd18

View File

@@ -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;