Change frame_filter_flags to use DEF_ENUM_FLAGS_TYPE
authorTom Tromey <tom@tromey.com>
Wed, 26 Apr 2017 04:33:50 +0000 (22:33 -0600)
committerTom Tromey <tom@tromey.com>
Mon, 26 Feb 2018 16:37:03 +0000 (09:37 -0700)
This changes frame_filter_flags to use DEF_ENUM_FLAGS_TYPE, and
updates all the uses.  It also changes the enum constants to use <<,
as suggested by Sergio.

ChangeLog
2018-02-26  Tom Tromey  <tom@tromey.com>

* stack.c (backtrace_command_1): Update.
* python/python-internal.h (gdbpy_apply_frame_filter): Change type
of "flags".
* python/py-framefilter.c (py_print_frame)
(gdbpy_apply_frame_filter): Change type of "flags".
* mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): Change type
of "flags".
(mi_cmd_stack_list_frames, mi_cmd_stack_list_locals)
(mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Update.
* extension.h (enum frame_filter_flag): Rename from
frame_filter_flags.
(frame_filter_flags): Define using DEF_ENUM_FLAGS_TYPE.
(apply_ext_lang_frame_filter): Change type of "flags".
* extension.c (apply_ext_lang_frame_filter): Change type of
"flags".
* extension-priv.h (struct extension_language_ops)
<apply_frame_filter>: Change type of "flags".

gdb/ChangeLog
gdb/extension-priv.h
gdb/extension.c
gdb/extension.h
gdb/mi/mi-cmd-stack.c
gdb/python/py-framefilter.c
gdb/python/python-internal.h
gdb/stack.c

index 906d14c1919fb0a55a9b0f31c78e4159c79f1e49..a569ef3bf0818c935ee16e9aecb1b2dd5fda20a2 100644 (file)
@@ -1,3 +1,23 @@
+2018-02-26  Tom Tromey  <tom@tromey.com>
+
+       * stack.c (backtrace_command_1): Update.
+       * python/python-internal.h (gdbpy_apply_frame_filter): Change type
+       of "flags".
+       * python/py-framefilter.c (py_print_frame)
+       (gdbpy_apply_frame_filter): Change type of "flags".
+       * mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): Change type
+       of "flags".
+       (mi_cmd_stack_list_frames, mi_cmd_stack_list_locals)
+       (mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Update.
+       * extension.h (enum frame_filter_flag): Rename from
+       frame_filter_flags.
+       (frame_filter_flags): Define using DEF_ENUM_FLAGS_TYPE.
+       (apply_ext_lang_frame_filter): Change type of "flags".
+       * extension.c (apply_ext_lang_frame_filter): Change type of
+       "flags".
+       * extension-priv.h (struct extension_language_ops)
+       <apply_frame_filter>: Change type of "flags".
+
 2018-02-26  Tom Tromey  <tom@tromey.com>
 
        PR python/16497:
index 5843479f93c24f1f322c552d43bf4e0aa9dbd142..b2a443028d3babeb5bcb4674d17f02bd32ed4271 100644 (file)
@@ -183,7 +183,8 @@ struct extension_language_ops
      or SCR_BT_COMPLETED on success.  */
   enum ext_lang_bt_status (*apply_frame_filter)
     (const struct extension_language_defn *,
-     struct frame_info *frame, int flags, enum ext_lang_frame_args args_type,
+     struct frame_info *frame, frame_filter_flags flags,
+     enum ext_lang_frame_args args_type,
      struct ui_out *out, int frame_low, int frame_high);
 
   /* Update values held by the extension language when OBJFILE is discarded.
index 224b05c7ed07114cb43da366a7d29a9345451e22..67f83b4bcdcdcc3183f2d7f3f3f322e5dd199c0a 100644 (file)
@@ -553,7 +553,8 @@ apply_ext_lang_val_pretty_printer (struct type *type,
    rather than trying filters in other extension languages.  */
 
 enum ext_lang_bt_status
-apply_ext_lang_frame_filter (struct frame_info *frame, int flags,
+apply_ext_lang_frame_filter (struct frame_info *frame,
+                            frame_filter_flags flags,
                             enum ext_lang_frame_args args_type,
                             struct ui_out *out,
                             int frame_low, int frame_high)
index 7375d72a643fb259a5e426f3ca36ada93abf0467..943792db29e0756da35badc3dcbf1cccc47edc3b 100644 (file)
@@ -87,24 +87,26 @@ enum ext_lang_bt_status
 
 /* Flags to pass to apply_extlang_frame_filter.  */
 
-enum frame_filter_flags
+enum frame_filter_flag
   {
     /* Set this flag if frame level is to be printed.  */
-    PRINT_LEVEL = 1,
+    PRINT_LEVEL = 1 << 0,
 
     /* Set this flag if frame information is to be printed.  */
-    PRINT_FRAME_INFO = 2,
+    PRINT_FRAME_INFO = 1 << 1,
 
     /* Set this flag if frame arguments are to be printed.  */
-    PRINT_ARGS = 4,
+    PRINT_ARGS = 1 << 2,
 
     /* Set this flag if frame locals are to be printed.  */
-    PRINT_LOCALS = 8,
+    PRINT_LOCALS = 1 << 3,
 
     /* Set this flag if a "More frames" message is to be printed.  */
-    PRINT_MORE_FRAMES = 16,
+    PRINT_MORE_FRAMES = 1 << 4,
   };
 
+DEF_ENUM_FLAGS_TYPE (enum frame_filter_flag, frame_filter_flags);
+
 /* A choice of the different frame argument printing strategies that
    can occur in different cases of frame filter instantiation.  */
 
@@ -287,7 +289,8 @@ extern int apply_ext_lang_val_pretty_printer
    const struct language_defn *language);
 
 extern enum ext_lang_bt_status apply_ext_lang_frame_filter
-  (struct frame_info *frame, int flags, enum ext_lang_frame_args args_type,
+  (struct frame_info *frame, frame_filter_flags flags,
+   enum ext_lang_frame_args args_type,
    struct ui_out *out, int frame_low, int frame_high);
 
 extern void preserve_ext_lang_values (struct objfile *, htab_t copied_types);
index 29c49ffba6f9622db3a659bbd77f6abc6f563c99..443d1ed4183d615e9e0e8c9d870d456034fbcbef 100644 (file)
@@ -57,7 +57,8 @@ mi_cmd_enable_frame_filters (const char *command, char **argv, int argc)
 /* Like apply_ext_lang_frame_filter, but take a print_values */
 
 static enum ext_lang_bt_status
-mi_apply_ext_lang_frame_filter (struct frame_info *frame, int flags,
+mi_apply_ext_lang_frame_filter (struct frame_info *frame,
+                               frame_filter_flags flags,
                                enum print_values print_values,
                                struct ui_out *out,
                                int frame_low, int frame_high)
@@ -146,7 +147,7 @@ mi_cmd_stack_list_frames (const char *command, char **argv, int argc)
 
   if (! raw_arg && frame_filters)
     {
-      int flags = PRINT_LEVEL | PRINT_FRAME_INFO;
+      frame_filter_flags flags = PRINT_LEVEL | PRINT_FRAME_INFO;
       int py_frame_low = frame_low;
 
       /* We cannot pass -1 to frame_low, as that would signify a
@@ -262,7 +263,7 @@ mi_cmd_stack_list_locals (const char *command, char **argv, int argc)
 
    if (! raw_arg && frame_filters)
      {
-       int flags = PRINT_LEVEL | PRINT_LOCALS;
+       frame_filter_flags flags = PRINT_LEVEL | PRINT_LOCALS;
 
        result = mi_apply_ext_lang_frame_filter (frame, flags, print_value,
                                                current_uiout, 0, 0);
@@ -359,7 +360,7 @@ mi_cmd_stack_list_args (const char *command, char **argv, int argc)
 
   if (! raw_arg && frame_filters)
     {
-      int flags = PRINT_LEVEL | PRINT_ARGS;
+      frame_filter_flags flags = PRINT_LEVEL | PRINT_ARGS;
       int py_frame_low = frame_low;
 
       /* We cannot pass -1 to frame_low, as that would signify a
@@ -451,7 +452,7 @@ mi_cmd_stack_list_variables (const char *command, char **argv, int argc)
 
    if (! raw_arg && frame_filters)
      {
-       int flags = PRINT_LEVEL | PRINT_ARGS | PRINT_LOCALS;
+       frame_filter_flags flags = PRINT_LEVEL | PRINT_ARGS | PRINT_LOCALS;
 
        result = mi_apply_ext_lang_frame_filter (frame, flags,
                                                print_value,
index 3a3fb97c6c26da963f269f8b6bc1f5c4cb28105b..99d47f247a35f7c4b57572a37d1f6cff001da08d 100644 (file)
@@ -920,7 +920,7 @@ py_print_args (PyObject *filter,
     on success.  It can also throw an exception RETURN_QUIT.  */
 
 static enum ext_lang_bt_status
-py_print_frame (PyObject *filter, int flags,
+py_print_frame (PyObject *filter, frame_filter_flags flags,
                enum ext_lang_frame_args args_type,
                struct ui_out *out, int indent, htab_t levels_printed)
 {
@@ -1332,7 +1332,7 @@ bootstrap_python_frame_filters (struct frame_info *frame,
 
 enum ext_lang_bt_status
 gdbpy_apply_frame_filter (const struct extension_language_defn *extlang,
-                         struct frame_info *frame, int flags,
+                         struct frame_info *frame, frame_filter_flags flags,
                          enum ext_lang_frame_args args_type,
                          struct ui_out *out, int frame_low, int frame_high)
 {
index 3f1c61fec8b45a27385324f9e2d56c6b110ab162..26400f4fbaab655e3462717286a7836311731626 100644 (file)
@@ -459,7 +459,8 @@ extern enum ext_lang_rc gdbpy_apply_val_pretty_printer
    const struct language_defn *language);
 extern enum ext_lang_bt_status gdbpy_apply_frame_filter
   (const struct extension_language_defn *,
-   struct frame_info *frame, int flags, enum ext_lang_frame_args args_type,
+   struct frame_info *frame, frame_filter_flags flags,
+   enum ext_lang_frame_args args_type,
    struct ui_out *out, int frame_low, int frame_high);
 extern void gdbpy_preserve_values (const struct extension_language_defn *,
                                   struct objfile *objfile,
index 4481cc4c6a254f340a0e74042e550748279f4282..ebc49d426455f23e957cad5f7c0e39e74a54b8aa 100644 (file)
@@ -1775,7 +1775,7 @@ backtrace_command_1 (const char *count_exp, int show_locals, int no_filters,
 
   if (! no_filters)
     {
-      int flags = PRINT_LEVEL | PRINT_FRAME_INFO | PRINT_ARGS;
+      frame_filter_flags flags = PRINT_LEVEL | PRINT_FRAME_INFO | PRINT_ARGS;
       enum ext_lang_frame_args arg_type;
 
       if (show_locals)