Clean up unusual code in mi-cmd-stack.c

Message ID 20230125150609.3987536-1-tromey@adacore.com
State Committed
Headers
Series Clean up unusual code in mi-cmd-stack.c |

Commit Message

Tom Tromey Jan. 25, 2023, 3:06 p.m. UTC
  I noticed some unusual code in mi-cmd-stack.c.  This code is a switch,
where one of the cases appears in the middle of another block.  It
seemed cleaner to me to have the earlier case just conditionally fall
through.
---
 gdb/mi/mi-cmd-stack.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
  

Comments

Simon Marchi Jan. 25, 2023, 6:14 p.m. UTC | #1
On 1/25/23 10:06, Tom Tromey via Gdb-patches wrote:
> I noticed some unusual code in mi-cmd-stack.c.  This code is a switch,
> where one of the cases appears in the middle of another block.  It
> seemed cleaner to me to have the earlier case just conditionally fall
> through.

Thanks, that LGTM.  I would have been very confused if I had to deal
with that code.

Simon
  

Patch

diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index 00e61e04b67..4666808a9c9 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -571,7 +571,6 @@  list_args_or_locals (const frame_print_options &fp_opts,
   const struct block *block;
   struct symbol *sym;
   struct block_iterator iter;
-  struct type *type;
   const char *name_of_result;
   struct ui_out *uiout = current_uiout;
 
@@ -649,17 +648,20 @@  list_args_or_locals (const frame_print_options &fp_opts,
 	      switch (values)
 		{
 		case PRINT_SIMPLE_VALUES:
-		  type = check_typedef (sym2->type ());
-		  if (type->code () != TYPE_CODE_ARRAY
-		      && type->code () != TYPE_CODE_STRUCT
-		      && type->code () != TYPE_CODE_UNION)
-		    {
+		  {
+		    struct type *type = check_typedef (sym2->type ());
+		    if (type->code () == TYPE_CODE_ARRAY
+			|| type->code () == TYPE_CODE_STRUCT
+			|| type->code () == TYPE_CODE_UNION)
+		      break;
+		  }
+		  /* FALLTHROUGH */
+
 		case PRINT_ALL_VALUES:
 		  if (sym->is_argument ())
 		    read_frame_arg (fp_opts, sym2, fi, &arg, &entryarg);
 		  else
 		    read_frame_local (sym2, fi, &arg);
-		    }
 		  break;
 		}