[RFA] Cleanup SYMBOLS_CAN_START_WITH_DOLLAR

Andrew Cagney cagney@gnu.org
Fri Nov 12 20:44:00 GMT 2004


Randolph Chung wrote:
> Ref: http://sources.redhat.com/ml/gdb/2004-11/msg00097.html
> 
> Trying to get rid of more of these hppa-only defines....
> 
> ok?
> 
> randolph
> 
> 2004-11-12  Randolph Chung  <tausq@debian.org>
> 
> 	* config/tm/tm-hppa.h (SYMBOLS_CAN_START_WITH_DOLLAR): Remove.
> 	* parse.c (SYMBOLS_CAN_START_WITH_DOLLAR): Remove.
> 	(write_exp_msymbol): Remove conditional check for symbols starting 
> 	with $.  Update comments.

Provided there are no regressions with something more mainstream than 
HP/UX, go for it.

Andrew

(I just hope there's never a symbol called $pc)

> Index: config/pa/tm-hppa.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/config/pa/tm-hppa.h,v
> retrieving revision 1.75
> diff -u -p -r1.75 tm-hppa.h
> --- config/pa/tm-hppa.h	2 Sep 2004 14:17:41 -0000	1.75
> +++ config/pa/tm-hppa.h	12 Nov 2004 17:50:26 -0000
> @@ -38,9 +38,3 @@ extern int hppa_instruction_nullified (v
>  /* Here's how to step off a permanent breakpoint.  */
>  #define SKIP_PERMANENT_BREAKPOINT (hppa_skip_permanent_breakpoint)
>  extern void hppa_skip_permanent_breakpoint (void);
> -
> -/* On HP-UX, certain system routines (millicode) have names beginning
> -   with $ or $$, e.g. $$dyncall, which handles inter-space procedure
> -   calls on PA-RISC.  Tell the expression parser to check for those
> -   when parsing tokens that begin with "$".  */
> -#define SYMBOLS_CAN_START_WITH_DOLLAR (1)
> Index: parse.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/parse.c,v
> retrieving revision 1.43
> diff -u -p -r1.43 parse.c
> --- parse.c	26 Jul 2004 14:53:04 -0000	1.43
> +++ parse.c	12 Nov 2004 17:50:26 -0000
> @@ -64,21 +64,6 @@ const struct exp_descriptor exp_descript
>      evaluate_subexp_standard
>    };
>  

> -/* Symbols which architectures can redefine.  */
> -
> -/* Some systems have routines whose names start with `$'.  Giving this
> -   macro a non-zero value tells GDB's expression parser to check for
> -   such routines when parsing tokens that begin with `$'.
> -
> -   On HP-UX, certain system routines (millicode) have names beginning
> -   with `$' or `$$'.  For example, `$$dyncall' is a millicode routine
> -   that handles inter-space procedure calls on PA-RISC.  */
> -#ifndef SYMBOLS_CAN_START_WITH_DOLLAR
> -#define SYMBOLS_CAN_START_WITH_DOLLAR (0)
> -#endif
> -
> -
> -

>  /* Global variables declared in parser-defs.h (and commented there).  */
>  struct expression *expout;
>  int expout_size;
> @@ -437,6 +422,9 @@ write_exp_msymbol (struct minimal_symbol
>  void
>  write_dollar_variable (struct stoken str)
>  {
> +  struct symbol *sym = NULL;
> +  struct minimal_symbol *msym = NULL;
> +
>    /* Handle the tokens $digits; also $ (short for $0) and $$ (short for $$1)
>       and $$digits (equivalent to $<-digits> if you could type that). */
>  
> @@ -474,36 +462,26 @@ write_dollar_variable (struct stoken str
>    if (i >= 0)
>      goto handle_register;
>  
> -  if (SYMBOLS_CAN_START_WITH_DOLLAR)
> -    {
> -      struct symbol *sym = NULL;
> -      struct minimal_symbol *msym = NULL;
> +  /* On some systems, such as HP-UX and hppa-linux, certain system routines 
> +     have names beginning with $ or $$.  Check for those, first. */
>  
> -      /* On HP-UX, certain system routines (millicode) have names beginning
> -	 with $ or $$, e.g. $$dyncall, which handles inter-space procedure
> -	 calls on PA-RISC. Check for those, first. */
> -
> -      /* This code is not enabled on non HP-UX systems, since worst case 
> -	 symbol table lookup performance is awful, to put it mildly. */
> -
> -      sym = lookup_symbol (copy_name (str), (struct block *) NULL,
> -			   VAR_DOMAIN, (int *) NULL, (struct symtab **) NULL);
> -      if (sym)
> -	{
> -	  write_exp_elt_opcode (OP_VAR_VALUE);
> -	  write_exp_elt_block (block_found);	/* set by lookup_symbol */
> -	  write_exp_elt_sym (sym);
> -	  write_exp_elt_opcode (OP_VAR_VALUE);
> -	  return;
> -	}
> -      msym = lookup_minimal_symbol (copy_name (str), NULL, NULL);
> -      if (msym)
> -	{
> -	  write_exp_msymbol (msym,
> -			     lookup_function_type (builtin_type_int),
> -			     builtin_type_int);
> -	  return;
> -	}
> +  sym = lookup_symbol (copy_name (str), (struct block *) NULL,
> +		       VAR_DOMAIN, (int *) NULL, (struct symtab **) NULL);
> +  if (sym)
> +    {
> +      write_exp_elt_opcode (OP_VAR_VALUE);
> +      write_exp_elt_block (block_found);	/* set by lookup_symbol */
> +      write_exp_elt_sym (sym);
> +      write_exp_elt_opcode (OP_VAR_VALUE);
> +      return;
> +    }
> +  msym = lookup_minimal_symbol (copy_name (str), NULL, NULL);
> +  if (msym)
> +    {
> +      write_exp_msymbol (msym,
> +			 lookup_function_type (builtin_type_int),
> +			 builtin_type_int);
> +      return;
>      }
>  
>    /* Any other names starting in $ are debugger internal variables.  */



More information about the Gdb-patches mailing list