This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Cleanup SYMBOLS_CAN_START_WITH_DOLLAR


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. */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]