Avoid undefined behavior in Guile exception handling
[deliverable/binutils-gdb.git] / gdb / guile / scm-cmd.c
index 38db7f5c71fb1a70d4fbf620775257367ee8fe72..f2fa40e453b8bb132c8a07d8e54a22fdb201bd60 100644 (file)
@@ -758,6 +758,7 @@ gdbscm_register_command_x (SCM self)
   c_smob->cmd_name = gdbscm_gc_xstrdup (cmd_name);
   xfree (cmd_name);
 
+  gdbscm_gdb_exception exc {};
   try
     {
       if (c_smob->is_prefix)
@@ -778,8 +779,9 @@ gdbscm_register_command_x (SCM self)
     }
   catch (const gdb_exception &except)
     {
-      GDBSCM_HANDLE_GDB_EXCEPTION (except);
+      exc = unpack (except);
     }
+  GDBSCM_HANDLE_GDB_EXCEPTION (exc);
 
   /* Note: At this point the command exists in gdb.
      So no more errors after this point.  */
This page took 0.023281 seconds and 4 git commands to generate.