public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb: remove SYMBOL_IS_ARGUMENT macro
@ 2022-02-06 21:10 Simon Marchi
  0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2022-02-06 21:10 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d9743061f92738a6c3f311d640e614a5a2f01b1e

commit d9743061f92738a6c3f311d640e614a5a2f01b1e
Author: Simon Marchi <simon.marchi@efficios.com>
Date:   Thu Jan 27 22:06:47 2022 -0500

    gdb: remove SYMBOL_IS_ARGUMENT macro
    
    Add a getter and a setter for whether a symbol is an argument.  Remove
    the corresponding macro and adjust all callers.
    
    Change-Id: I71b4f0465f3dfd2ed8b9e140bd3f7d5eb8d9ee81

Diff:
---
 gdb/ada-lang.c              |  6 +++---
 gdb/block.c                 |  2 +-
 gdb/buildsym.c              |  4 ++--
 gdb/c-exp.y                 |  2 +-
 gdb/coffread.c              |  4 ++--
 gdb/dwarf2/read.c           |  2 +-
 gdb/go-exp.y                |  2 +-
 gdb/guile/scm-symbol.c      |  4 ++--
 gdb/infrun.c                |  2 +-
 gdb/mdebugread.c            |  4 ++--
 gdb/mi/mi-cmd-stack.c       | 10 +++++-----
 gdb/printcmd.c              |  2 +-
 gdb/python/py-framefilter.c |  4 ++--
 gdb/python/py-symbol.c      |  4 ++--
 gdb/stabsread.c             | 10 +++++-----
 gdb/stack.c                 |  8 ++++----
 gdb/symmisc.c               |  2 +-
 gdb/symtab.h                | 15 ++++++++++++---
 gdb/tracepoint.c            |  2 +-
 19 files changed, 49 insertions(+), 40 deletions(-)

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 77d6c07c6a9..636ae906250 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -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
 		      {
diff --git a/gdb/block.c b/gdb/block.c
index 7ec56c745af..f7532120286 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -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;
 		}
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 27206f97b2b..51764a67040 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -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;
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index 73347243f55..6d4cb475bd1 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -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\""),
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 8bf742161e7..e4db4fdb02f 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -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;
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index b62252eb4cf..259401fbbb7 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -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)
 	      {
diff --git a/gdb/go-exp.y b/gdb/go-exp.y
index 5436072d66e..fed7fe531f9 100644
--- a/gdb/go-exp.y
+++ b/gdb/go-exp.y
@@ -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\""),
diff --git a/gdb/guile/scm-symbol.c b/gdb/guile/scm-symbol.c
index caad90f4678..32ef3361941 100644
--- a/gdb/guile/scm-symbol.c
+++ b/gdb/guile/scm-symbol.c
@@ -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));
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 2e7ed15723f..f9420d54990 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -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)
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 0a2a4c327d1..a295878b625 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -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;
diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index 0c2172f0c63..ed22f3435e0 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -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);
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 787d8d77128..6f9be820b0c 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -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
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
index 70fec4aad5d..e6eb1ec8cdf 100644
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
@@ -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;
 }
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 708474331d7..c756870adb6 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -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));
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 38e94818fc5..33fcc9263f7 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -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).  */
diff --git a/gdb/stack.c b/gdb/stack.c
index fcdcd35f8b3..834e016ef93 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -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
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index cb16b5c202b..328230afe3a 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -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
diff --git a/gdb/symtab.h b/gdb/symtab.h
index ef9e653dfad..f565f125824 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -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)
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 807f5a312ae..d8577dc4518 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-06 21:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-06 21:10 [binutils-gdb] gdb: remove SYMBOL_IS_ARGUMENT macro Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).