Avoid undefined behavior in expression dumping
[deliverable/binutils-gdb.git] / gdb / expprint.c
index d6ed41253ed86e6d9870142f7ea16ff51611f226..e87b3b709b90b79d0876c7305a01e3961a8f1e9b 100644 (file)
@@ -687,6 +687,13 @@ static int dump_subexp_body (struct expression *exp, struct ui_file *, int);
 const char *
 op_name (struct expression *exp, enum exp_opcode opcode)
 {
+  if (opcode >= OP_UNUSED_LAST)
+    {
+      char *cell = get_print_cell ();
+      xsnprintf (cell, PRINT_CELL_SIZE, "unknown opcode: %u",
+                unsigned (opcode));
+      return cell;
+    }
   return exp->language_defn->la_exp_desc->op_name (opcode);
 }
 
This page took 0.023979 seconds and 4 git commands to generate.