]> Git Repo - binutils.git/commitdiff
gdb: remove SYMBOL_IS_ARGUMENT macro
authorSimon Marchi <[email protected]>
Fri, 28 Jan 2022 03:06:47 +0000 (22:06 -0500)
committerSimon Marchi <[email protected]>
Sun, 6 Feb 2022 21:03:46 +0000 (16:03 -0500)
Add a getter and a setter for whether a symbol is an argument.  Remove
the corresponding macro and adjust all callers.

Change-Id: I71b4f0465f3dfd2ed8b9e140bd3f7d5eb8d9ee81

19 files changed:
gdb/ada-lang.c
gdb/block.c
gdb/buildsym.c
gdb/c-exp.y
gdb/coffread.c
gdb/dwarf2/read.c
gdb/go-exp.y
gdb/guile/scm-symbol.c
gdb/infrun.c
gdb/mdebugread.c
gdb/mi/mi-cmd-stack.c
gdb/printcmd.c
gdb/python/py-framefilter.c
gdb/python/py-symbol.c
gdb/stabsread.c
gdb/stack.c
gdb/symmisc.c
gdb/symtab.h
gdb/tracepoint.c

index 77d6c07c6a9e6e0fc987c63ce3a994124915deac..636ae906250bbc124ddfbfbde46e48476998f36a 100644 (file)
@@ -5053,7 +5053,7 @@ match_data::operator() (struct block_symbol *bsym)
     {
       if (sym->aclass () == LOC_UNRESOLVED)
        return true;
-      else if (SYMBOL_IS_ARGUMENT (sym))
+      else if (sym->is_argument ())
        arg_sym = sym;
       else
        {
@@ -5744,7 +5744,7 @@ ada_add_block_symbols (std::vector<struct block_symbol> &result,
        {
          if (sym->aclass () != LOC_UNRESOLVED)
            {
-             if (SYMBOL_IS_ARGUMENT (sym))
+             if (sym->is_argument ())
                arg_sym = sym;
              else
                {
@@ -5798,7 +5798,7 @@ ada_add_block_symbols (std::vector<struct block_symbol> &result,
              {
                if (sym->aclass () != LOC_UNRESOLVED)
                  {
-                   if (SYMBOL_IS_ARGUMENT (sym))
+                   if (sym->is_argument ())
                      arg_sym = sym;
                    else
                      {
index 7ec56c745aff4d963293e5745d3b16e55b4b98fa..f7532120286bbd601184c39c16967a3318daddda 100644 (file)
@@ -753,7 +753,7 @@ block_lookup_symbol (const struct block *block, const char *name,
                                     sym->domain (), domain))
            {
              sym_found = sym;
-             if (!SYMBOL_IS_ARGUMENT (sym))
+             if (!sym->is_argument ())
                {
                  break;
                }
index 27206f97b2b0a5bd5c9232d1b9c0c42335bd291f..51764a67040c58188fee49ba842f29492a61263b 100644 (file)
@@ -266,7 +266,7 @@ buildsym_compunit::finish_block_internal
             we haven't fully initialized the block yet.  */
          ALL_DICT_SYMBOLS (BLOCK_MULTIDICT (block), miter, sym)
            {
-             if (SYMBOL_IS_ARGUMENT (sym))
+             if (sym->is_argument ())
                nparams++;
            }
          if (nparams > 0)
@@ -284,7 +284,7 @@ buildsym_compunit::finish_block_internal
                  if (iparams == nparams)
                    break;
 
-                 if (SYMBOL_IS_ARGUMENT (sym))
+                 if (sym->is_argument ())
                    {
                      ftype->field (iparams).set_type (SYMBOL_TYPE (sym));
                      TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
index 73347243f55096fe164012454e070d0db8ead480..6d4cb475bd1996be2defa16cb71f835d6caed455 100644 (file)
@@ -1102,7 +1102,7 @@ block     :       block COLONCOLON name
 variable:      name_not_typename ENTRY
                        { struct symbol *sym = $1.sym.symbol;
 
-                         if (sym == NULL || !SYMBOL_IS_ARGUMENT (sym)
+                         if (sym == NULL || !sym->is_argument ()
                              || !symbol_read_needs_frame (sym))
                            error (_("@entry can be used only for function "
                                     "parameters, not for \"%s\""),
index 8bf742161e7e773a410f72e79c2404e02840fd84..e4db4fdb02f6cf0d49e7104b8f254a86101277de 100644 (file)
@@ -1640,13 +1640,13 @@ process_coff_symbol (struct coff_symbol *cs,
 
        case C_ARG:
          sym->set_aclass_index (LOC_ARG);
-         SYMBOL_IS_ARGUMENT (sym) = 1;
+         sym->set_is_argument (1);
          add_symbol_to_list (sym, get_local_symbols ());
          break;
 
        case C_REGPARM:
          sym->set_aclass_index (coff_register_index);
-         SYMBOL_IS_ARGUMENT (sym) = 1;
+         sym->set_is_argument (1);
          SYMBOL_VALUE (sym) = cs->c_value;
          add_symbol_to_list (sym, get_local_symbols ());
          break;
index b62252eb4cfe1b4c55194c43ed967cf81b0f9737..259401fbbb70d2c761dcf9a9d8dcabbd48a55fac 100644 (file)
@@ -21934,7 +21934,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
            struct context_stack *curr
              = cu->get_builder ()->get_current_context_stack ();
            if (curr != nullptr && curr->name != nullptr)
-             SYMBOL_IS_ARGUMENT (sym) = 1;
+             sym->set_is_argument (1);
            attr = dwarf2_attr (die, DW_AT_location, cu);
            if (attr != nullptr)
              {
index 5436072d66e3f9ae4534525edfaf421f8f743c5a..fed7fe531f982e1b7afa21ce9fc207da15f68034 100644 (file)
@@ -545,7 +545,7 @@ variable:   name_not_typename ENTRY
                        { struct symbol *sym = $1.sym.symbol;
 
                          if (sym == NULL
-                             || !SYMBOL_IS_ARGUMENT (sym)
+                             || !sym->is_argument ()
                              || !symbol_read_needs_frame (sym))
                            error (_("@entry can be used only for function "
                                     "parameters, not for \"%s\""),
index caad90f46785045f6391b502eea3c14b2594c5c8..32ef3361941ab6070ddc88feaaef9d52cd8a5ba8 100644 (file)
@@ -424,7 +424,7 @@ gdbscm_symbol_argument_p (SCM self)
     = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   const struct symbol *symbol = s_smob->symbol;
 
-  return scm_from_bool (SYMBOL_IS_ARGUMENT (symbol));
+  return scm_from_bool (symbol->is_argument ());
 }
 
 /* (symbol-constant? <gdb:symbol>) -> boolean */
@@ -469,7 +469,7 @@ gdbscm_symbol_variable_p (SCM self)
 
   theclass = symbol->aclass ();
 
-  return scm_from_bool (!SYMBOL_IS_ARGUMENT (symbol)
+  return scm_from_bool (!symbol->is_argument ()
                        && (theclass == LOC_LOCAL || theclass == LOC_REGISTER
                            || theclass == LOC_STATIC || theclass == LOC_COMPUTED
                            || theclass == LOC_OPTIMIZED_OUT));
index 2e7ed15723fded78fb96da567f62ad3620e5db97..f9420d549907e790eb473c3ad973a5aa8134106c 100644 (file)
@@ -7935,7 +7935,7 @@ check_exception_resume (struct execution_control_state *ecs,
       b = SYMBOL_BLOCK_VALUE (func);
       ALL_BLOCK_SYMBOLS (b, iter, sym)
        {
-         if (!SYMBOL_IS_ARGUMENT (sym))
+         if (!sym->is_argument ())
            continue;
 
          if (argno == 0)
index 0a2a4c327d166ed3aab1dacd9f0e2bdf6b7d4fef..a295878b625aeaae3856669ecf98b09f13e20847 100644 (file)
@@ -676,7 +676,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
       s = new_symbol (name);
 
       s->set_domain (VAR_DOMAIN);
-      SYMBOL_IS_ARGUMENT (s) = 1;
+      s->set_is_argument (1);
       switch (sh->sc)
        {
        case scRegister:
@@ -1202,7 +1202,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
                      if (iparams == nparams)
                        break;
 
-                     if (SYMBOL_IS_ARGUMENT (sym))
+                     if (sym->is_argument ())
                        {
                          ftype->field (iparams).set_type (SYMBOL_TYPE (sym));
                          TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
index 0c2172f0c63974a681de3057b3f5f365151f1596..ed22f3435e0f80bffa879084c67c0ec781c5f5f8 100644 (file)
@@ -520,7 +520,7 @@ list_arg_or_local (const struct frame_arg *arg, enum what_to_list what,
     stb.puts ("@entry");
   uiout->field_stream ("name", stb);
 
-  if (what == all && SYMBOL_IS_ARGUMENT (arg->sym))
+  if (what == all && arg->sym->is_argument ())
     uiout->field_signed ("arg", 1);
 
   if (values == PRINT_SIMPLE_VALUES)
@@ -623,9 +623,9 @@ list_args_or_locals (const frame_print_options &fp_opts,
              if (what == all)
                print_me = 1;
              else if (what == locals)
-               print_me = !SYMBOL_IS_ARGUMENT (sym);
+               print_me = !sym->is_argument ();
              else
-               print_me = SYMBOL_IS_ARGUMENT (sym);
+               print_me = sym->is_argument ();
              break;
            }
          if (print_me)
@@ -633,7 +633,7 @@ list_args_or_locals (const frame_print_options &fp_opts,
              struct symbol *sym2;
              struct frame_arg arg, entryarg;
 
-             if (SYMBOL_IS_ARGUMENT (sym))
+             if (sym->is_argument ())
                sym2 = lookup_symbol_search_name (sym->search_name (),
                                                  block, VAR_DOMAIN).symbol;
              else
@@ -654,7 +654,7 @@ list_args_or_locals (const frame_print_options &fp_opts,
                      && type->code () != TYPE_CODE_UNION)
                    {
                case PRINT_ALL_VALUES:
-                 if (SYMBOL_IS_ARGUMENT (sym))
+                 if (sym->is_argument ())
                    read_frame_arg (fp_opts, sym2, fi, &arg, &entryarg);
                  else
                    read_frame_local (sym2, fi, &arg);
index 787d8d77128434db9afb482bfc86549dc612a9a4..6f9be820b0cfa6e9327c7543b5561d6db23f1d16 100644 (file)
@@ -1735,7 +1735,7 @@ info_address_command (const char *exp, int from_tty)
         in that objfile.  */
       regno = SYMBOL_REGISTER_OPS (sym)->register_number (sym, gdbarch);
 
-      if (SYMBOL_IS_ARGUMENT (sym))
+      if (sym->is_argument ())
        printf_filtered (_("an argument in register %s"),
                         gdbarch_register_name (gdbarch, regno));
       else
index 70fec4aad5dae0a50aca143f057884fc6e65ea62..e6eb1ec8cdf1897dd0825894e759009b8ea86c03 100644 (file)
@@ -191,9 +191,9 @@ mi_should_print (struct symbol *sym, enum mi_print_types type)
     case LOC_REGISTER: /* register              */
     case LOC_COMPUTED: /* computed location     */
       if (type == MI_PRINT_LOCALS)
-       print_me = ! SYMBOL_IS_ARGUMENT (sym);
+       print_me = ! sym->is_argument ();
       else
-       print_me = SYMBOL_IS_ARGUMENT (sym);
+       print_me = sym->is_argument ();
     }
   return print_me;
 }
index 708474331d72eb3dbe21fe50696985d7975b49aa..c756870adb6cef98cae282f9762d1d9874683de8 100644 (file)
@@ -141,7 +141,7 @@ sympy_is_argument (PyObject *self, void *closure)
 
   SYMPY_REQUIRE_VALID (self, symbol);
 
-  return PyBool_FromLong (SYMBOL_IS_ARGUMENT (symbol));
+  return PyBool_FromLong (symbol->is_argument ());
 }
 
 static PyObject *
@@ -180,7 +180,7 @@ sympy_is_variable (PyObject *self, void *closure)
 
   theclass = symbol->aclass ();
 
-  return PyBool_FromLong (!SYMBOL_IS_ARGUMENT (symbol)
+  return PyBool_FromLong (!symbol->is_argument ()
                          && (theclass == LOC_LOCAL || theclass == LOC_REGISTER
                              || theclass == LOC_STATIC || theclass == LOC_COMPUTED
                              || theclass == LOC_OPTIMIZED_OUT));
index 38e94818fc548f1cdc50a55630e2184f83d116f5..33fcc9263f7eb473665b4860a6f341962c43f8e4 100644 (file)
@@ -1067,7 +1067,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
       sym->set_aclass_index (LOC_ARG);
       SYMBOL_VALUE (sym) = valu;
       sym->set_domain (VAR_DOMAIN);
-      SYMBOL_IS_ARGUMENT (sym) = 1;
+      sym->set_is_argument (1);
       add_symbol_to_list (sym, get_local_symbols ());
 
       if (gdbarch_byte_order (gdbarch) != BFD_ENDIAN_BIG)
@@ -1114,7 +1114,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
       /* Parameter which is in a register.  */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       sym->set_aclass_index (stab_register_index);
-      SYMBOL_IS_ARGUMENT (sym) = 1;
+      sym->set_is_argument (1);
       SYMBOL_VALUE (sym) = valu;
       sym->set_domain (VAR_DOMAIN);
       add_symbol_to_list (sym, get_local_symbols ());
@@ -1352,7 +1352,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
       /* Reference parameter */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       sym->set_aclass_index (LOC_REF_ARG);
-      SYMBOL_IS_ARGUMENT (sym) = 1;
+      sym->set_is_argument (1);
       SYMBOL_VALUE (sym) = valu;
       sym->set_domain (VAR_DOMAIN);
       add_symbol_to_list (sym, get_local_symbols ());
@@ -1362,7 +1362,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
       /* Reference parameter which is in a register.  */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       sym->set_aclass_index (stab_regparm_index);
-      SYMBOL_IS_ARGUMENT (sym) = 1;
+      sym->set_is_argument (1);
       SYMBOL_VALUE (sym) = valu;
       sym->set_domain (VAR_DOMAIN);
       add_symbol_to_list (sym, get_local_symbols ());
@@ -1394,7 +1394,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
      register or on the stack) instead of the structure itself.  */
 
   if (gdbarch_stabs_argument_has_addr (gdbarch, SYMBOL_TYPE (sym))
-      && SYMBOL_IS_ARGUMENT (sym))
+      && sym->is_argument ())
     {
       /* We have to convert LOC_REGISTER to LOC_REGPARM_ADDR (for
         variables passed in a register).  */
index fcdcd35f8b393a2d8f411d2c7b45ba762ce6abbd..834e016ef937e0a5f9a8fdd538ba34f049c703a2 100644 (file)
@@ -763,7 +763,7 @@ print_frame_args (const frame_print_options &fp_opts,
          /* Keep track of the highest stack argument offset seen, and
             skip over any kinds of symbols we don't care about.  */
 
-         if (!SYMBOL_IS_ARGUMENT (sym))
+         if (!sym->is_argument ())
            continue;
 
          if (!print_names)
@@ -829,7 +829,7 @@ print_frame_args (const frame_print_options &fp_opts,
                                                b, VAR_DOMAIN).symbol;
              gdb_assert (nsym != NULL);
              if (nsym->aclass () == LOC_REGISTER
-                 && !SYMBOL_IS_ARGUMENT (nsym))
+                 && !nsym->is_argument ())
                {
                  /* There is a LOC_ARG/LOC_REGISTER pair.  This means
                     that it was passed on the stack and loaded into a
@@ -2256,7 +2256,7 @@ iterate_over_block_locals (const struct block *b,
        case LOC_STATIC:
        case LOC_COMPUTED:
        case LOC_OPTIMIZED_OUT:
-         if (SYMBOL_IS_ARGUMENT (sym))
+         if (sym->is_argument ())
            break;
          if (sym->domain () == COMMON_BLOCK_DOMAIN)
            break;
@@ -2503,7 +2503,7 @@ iterate_over_block_arg_vars (const struct block *b,
   ALL_BLOCK_SYMBOLS (b, iter, sym)
     {
       /* Don't worry about things which aren't arguments.  */
-      if (SYMBOL_IS_ARGUMENT (sym))
+      if (sym->is_argument ())
        {
          /* We have to look up the symbol because arguments can have
             two entries (one a parameter, one a local) and the one we
index cb16b5c202b5b8b91f6c62778419f9ddbc695936..328230afe3ad59f1236db0eadd458f3a72243985 100644 (file)
@@ -589,7 +589,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
          break;
 
        case LOC_REGISTER:
-         if (SYMBOL_IS_ARGUMENT (symbol))
+         if (symbol->is_argument ())
            fprintf_filtered (outfile, "parameter register %s",
                              plongest (SYMBOL_VALUE (symbol)));
          else
index ef9e653dfad2541bfe2eec83ceb3406751d8b513..f565f1258248d1f69891bd6df96bf6787763b5ae 100644 (file)
@@ -1116,7 +1116,7 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
     : m_domain (UNDEF_DOMAIN),
       m_aclass_index (0),
       m_is_objfile_owned (1),
-      is_argument (0),
+      m_is_argument (0),
       is_inlined (0),
       maybe_copied (0),
       subclass (SYMBOL_NONE),
@@ -1178,6 +1178,16 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
     m_is_objfile_owned = is_objfile_owned;
   }
 
+  bool is_argument () const
+  {
+    return m_is_argument;
+  }
+
+  void set_is_argument (bool is_argument)
+  {
+    m_is_argument = is_argument;
+  }
+
   /* Data type of value */
 
   struct type *type = nullptr;
@@ -1213,7 +1223,7 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
 
   /* Whether this is an argument.  */
 
-  unsigned is_argument : 1;
+  unsigned m_is_argument : 1;
 
   /* Whether this is an inlined function (class LOC_BLOCK only).  */
   unsigned is_inlined : 1;
@@ -1280,7 +1290,6 @@ struct block_symbol
 /* Note: There is no accessor macro for symbol.owner because it is
    "private".  */
 
-#define SYMBOL_IS_ARGUMENT(symbol)     (symbol)->is_argument
 #define SYMBOL_INLINED(symbol)         (symbol)->is_inlined
 #define SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION(symbol) \
   (((symbol)->subclass) == SYMBOL_TEMPLATE)
index 807f5a312ae9f75aadac28b15863aa4ea4fdaf2e..d8577dc4518bfe16fd305cee6c4b24b0f8484c11 100644 (file)
@@ -2586,7 +2586,7 @@ info_scope_command (const char *args_in, int from_tty)
                  regno = SYMBOL_REGISTER_OPS (sym)->register_number (sym,
                                                                      gdbarch);
 
-                 if (SYMBOL_IS_ARGUMENT (sym))
+                 if (sym->is_argument ())
                    printf_filtered ("an argument in register $%s",
                                     gdbarch_register_name (gdbarch, regno));
                  else
This page took 0.110801 seconds and 4 git commands to generate.