This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[rfc][2/3] Eliminate LOC_LOCAL_ARG
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 19 May 2008 18:52:21 +0200 (CEST)
- Subject: [rfc][2/3] Eliminate LOC_LOCAL_ARG
Hello,
while looking at the address classes, I noticed that LOC_LOCAL_ARG
also is not used anywhere anymore. The comment in symtab.h says
it used to be used with the i960 target -- which is no longer
supported by GDB.
This patch therefore removes the code related to LOC_LOCAL_ARG.
Any objections to removing this address class?
Bye,
Ulrich
ChangeLog:
* symtab.h (enum address_class): Remove LOC_LOCAL_ARG.
* ada-exp.y (select_possible_type_sym): Do not handle LOC_LOCAL_ARG.
* ada-lang.c (resolve_subexp, symtab_for_sym): Likewise.
(ada_add_block_symbols): Likewise.
* ax-gdb.c (gen_var_ref): Likewise.
* buildsyms.c (finish_block): Likewise.
* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
* m2-exp.y (yylex): Likewise.
* mi/mi-cmd-stack.c (list_args_or_locals): Likewise.
* printcmd.c (address_info): Likewise.
* stack.c (print_frame_args, print_frame_arg_vars): Likewise.
* symmisc.c (print_symbol, print_partial_symbols): Likewise.
* symtab.c (lookup_block_symbol): Likewise.
* tracepoint.c (collect_symbol, add_local_symbols): Likewise.
(scope_info): Likewise.
diff -urNp gdb-orig/gdb/ada-exp.y gdb-head/gdb/ada-exp.y
--- gdb-orig/gdb/ada-exp.y 2008-05-19 17:48:16.663436000 +0200
+++ gdb-head/gdb/ada-exp.y 2008-05-19 18:08:21.836045065 +0200
@@ -1059,7 +1059,6 @@ select_possible_type_sym (struct ada_sym
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED:
diff -urNp gdb-orig/gdb/ada-lang.c gdb-head/gdb/ada-lang.c
--- gdb-orig/gdb/ada-lang.c 2008-05-19 17:49:26.881032000 +0200
+++ gdb-head/gdb/ada-lang.c 2008-05-19 18:06:53.960314963 +0200
@@ -2893,7 +2893,6 @@ resolve_subexp (struct expression **expp
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED:
@@ -4322,7 +4321,6 @@ symtab_for_sym (struct symbol *sym)
case LOC_REGPARM_ADDR:
case LOC_LOCAL:
case LOC_TYPEDEF:
- case LOC_LOCAL_ARG:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED:
@@ -5222,7 +5220,6 @@ ada_add_block_symbols (struct obstack *o
switch (SYMBOL_CLASS (sym))
{
case LOC_ARG:
- case LOC_LOCAL_ARG:
case LOC_REF_ARG:
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
@@ -5256,7 +5253,6 @@ ada_add_block_symbols (struct obstack *o
switch (SYMBOL_CLASS (sym))
{
case LOC_ARG:
- case LOC_LOCAL_ARG:
case LOC_REF_ARG:
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
@@ -5312,7 +5308,6 @@ ada_add_block_symbols (struct obstack *o
switch (SYMBOL_CLASS (sym))
{
case LOC_ARG:
- case LOC_LOCAL_ARG:
case LOC_REF_ARG:
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
diff -urNp gdb-orig/gdb/ax-gdb.c gdb-head/gdb/ax-gdb.c
--- gdb-orig/gdb/ax-gdb.c 2008-02-05 16:54:34.000000000 +0100
+++ gdb-head/gdb/ax-gdb.c 2008-05-19 18:07:54.734798488 +0200
@@ -564,7 +564,6 @@ gen_var_ref (struct agent_expr *ax, stru
break;
case LOC_LOCAL: /* var lives in locals area of frame */
- case LOC_LOCAL_ARG:
gen_frame_locals_address (ax);
gen_sym_offset (ax, var);
value->kind = axs_lvalue_memory;
diff -urNp gdb-orig/gdb/buildsym.c gdb-head/gdb/buildsym.c
--- gdb-orig/gdb/buildsym.c 2008-05-19 18:08:43.618253079 +0200
+++ gdb-head/gdb/buildsym.c 2008-05-19 18:05:56.483757927 +0200
@@ -290,7 +290,6 @@ finish_block (struct symbol *symbol, str
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
- case LOC_LOCAL_ARG:
case LOC_COMPUTED_ARG:
nparams++;
break;
@@ -330,7 +329,6 @@ finish_block (struct symbol *symbol, str
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
- case LOC_LOCAL_ARG:
case LOC_COMPUTED_ARG:
TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym);
TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
diff -urNp gdb-orig/gdb/findvar.c gdb-head/gdb/findvar.c
--- gdb-orig/gdb/findvar.c 2008-05-19 18:08:43.624252221 +0200
+++ gdb-head/gdb/findvar.c 2008-05-19 18:04:56.565285399 +0200
@@ -359,7 +359,6 @@ symbol_read_needs_frame (struct symbol *
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
return 1;
@@ -480,7 +479,6 @@ read_var_value (struct symbol *var, stru
}
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
if (frame == NULL)
return 0;
addr = get_frame_locals_address (frame);
diff -urNp gdb-orig/gdb/m2-exp.y gdb-head/gdb/m2-exp.y
--- gdb-orig/gdb/m2-exp.y 2008-05-19 17:49:26.968020000 +0200
+++ gdb-head/gdb/m2-exp.y 2008-05-19 18:07:37.260637199 +0200
@@ -1044,7 +1044,6 @@ yylex ()
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_CONST:
diff -urNp gdb-orig/gdb/mi/mi-cmd-stack.c gdb-head/gdb/mi/mi-cmd-stack.c
--- gdb-orig/gdb/mi/mi-cmd-stack.c 2008-05-19 17:49:26.986017000 +0200
+++ gdb-head/gdb/mi/mi-cmd-stack.c 2008-05-19 18:04:38.771037711 +0200
@@ -254,7 +254,6 @@ list_args_or_locals (int locals, int val
case LOC_REF_ARG: /* reference arg */
case LOC_REGPARM: /* register arg */
case LOC_REGPARM_ADDR: /* indirect register arg */
- case LOC_LOCAL_ARG: /* stack arg */
case LOC_BASEREG_ARG: /* basereg arg */
case LOC_COMPUTED_ARG: /* arg with computed location */
if (!locals)
diff -urNp gdb-orig/gdb/printcmd.c gdb-head/gdb/printcmd.c
--- gdb-orig/gdb/printcmd.c 2008-05-19 18:08:43.639250076 +0200
+++ gdb-head/gdb/printcmd.c 2008-05-19 18:08:07.303995134 +0200
@@ -1164,10 +1164,6 @@ address_info (char *exp, int from_tty)
printf_filtered (_("an argument at offset %ld"), val);
break;
- case LOC_LOCAL_ARG:
- printf_filtered (_("an argument at frame offset %ld"), val);
- break;
-
case LOC_LOCAL:
printf_filtered (_("a local variable at frame offset %ld"), val);
break;
diff -urNp gdb-orig/gdb/stack.c gdb-head/gdb/stack.c
--- gdb-orig/gdb/stack.c 2008-05-19 17:49:27.049142000 +0200
+++ gdb-head/gdb/stack.c 2008-05-19 18:05:25.542528676 +0200
@@ -264,7 +264,6 @@ print_frame_args (struct symbol *func, s
keep track of stack offsets in them. */
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
- case LOC_LOCAL_ARG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG:
break;
@@ -1577,7 +1576,6 @@ print_frame_arg_vars (struct frame_info
switch (SYMBOL_CLASS (sym))
{
case LOC_ARG:
- case LOC_LOCAL_ARG:
case LOC_REF_ARG:
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
diff -urNp gdb-orig/gdb/symmisc.c gdb-head/gdb/symmisc.c
--- gdb-orig/gdb/symmisc.c 2008-05-19 18:08:43.681244070 +0200
+++ gdb-head/gdb/symmisc.c 2008-05-19 18:05:43.901695679 +0200
@@ -651,11 +651,6 @@ print_symbol (void *args)
SYMBOL_VALUE (symbol));
break;
- case LOC_LOCAL_ARG:
- fprintf_filtered (outfile, "arg at offset 0x%lx from fp",
- SYMBOL_VALUE (symbol));
- break;
-
case LOC_REF_ARG:
fprintf_filtered (outfile, "reference arg at 0x%lx", SYMBOL_VALUE (symbol));
break;
@@ -856,9 +851,6 @@ print_partial_symbols (struct partial_sy
case LOC_CONST_BYTES:
fputs_filtered ("constant bytes", outfile);
break;
- case LOC_LOCAL_ARG:
- fputs_filtered ("shuffled arg", outfile);
- break;
case LOC_UNRESOLVED:
fputs_filtered ("unresolved", outfile);
break;
diff -urNp gdb-orig/gdb/symtab.c gdb-head/gdb/symtab.c
--- gdb-orig/gdb/symtab.c 2008-05-19 18:08:43.693242355 +0200
+++ gdb-head/gdb/symtab.c 2008-05-19 18:06:16.456959660 +0200
@@ -1958,7 +1958,6 @@ lookup_block_symbol (const struct block
{
sym_found = sym;
if (SYMBOL_CLASS (sym) != LOC_ARG &&
- SYMBOL_CLASS (sym) != LOC_LOCAL_ARG &&
SYMBOL_CLASS (sym) != LOC_REF_ARG &&
SYMBOL_CLASS (sym) != LOC_REGPARM &&
SYMBOL_CLASS (sym) != LOC_REGPARM_ADDR &&
diff -urNp gdb-orig/gdb/symtab.h gdb-head/gdb/symtab.h
--- gdb-orig/gdb/symtab.h 2008-05-19 18:08:43.718238780 +0200
+++ gdb-head/gdb/symtab.h 2008-05-19 18:06:31.838153706 +0200
@@ -485,14 +485,6 @@ enum address_class
LOC_CONST_BYTES,
- /* Value is arg at SYMBOL_VALUE offset in stack frame. Differs from
- LOC_LOCAL in that symbol is an argument; differs from LOC_ARG in
- that we find it in the frame (get_frame_locals_address), not in
- the arglist (get_frame_args_address). Added for i960, which
- passes args in regs then copies to frame. */
-
- LOC_LOCAL_ARG,
-
/* Value is at SYMBOL_VALUE offset from the current value of
register number SYMBOL_BASEREG. This exists mainly for the same
things that LOC_LOCAL and LOC_ARG do; but we need to do this
diff -urNp gdb-orig/gdb/tracepoint.c gdb-head/gdb/tracepoint.c
--- gdb-orig/gdb/tracepoint.c 2008-05-19 18:08:43.730237064 +0200
+++ gdb-head/gdb/tracepoint.c 2008-05-19 18:07:27.487572931 +0200
@@ -1279,7 +1279,6 @@ collect_symbol (struct collection_list *
add_memrange (collect, reg, offset, len);
break;
case LOC_LOCAL:
- case LOC_LOCAL_ARG:
reg = frame_regno;
offset = frame_offset + SYMBOL_VALUE (sym);
if (info_verbose)
@@ -1348,7 +1347,6 @@ add_local_symbols (struct collection_lis
}
break;
case LOC_ARG:
- case LOC_LOCAL_ARG:
case LOC_REF_ARG:
case LOC_REGPARM:
case LOC_REGPARM_ADDR:
@@ -2461,7 +2459,6 @@ scope_info (char *args, int from_tty)
(current_gdbarch, SYMBOL_VALUE (sym)));
break;
case LOC_ARG:
- case LOC_LOCAL_ARG:
printf_filtered ("an argument at stack/frame offset %ld",
SYMBOL_VALUE (sym));
break;
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com