From: Ulrich Weigand Date: Thu, 22 May 2008 16:58:02 +0000 (+0000) Subject: * symtab.h (enum address_class): Remove LOC_INDIRECT and X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=0bb4e8c4ad45e09c354fdb57d18d5c1602900a63;p=deliverable%2Fbinutils-gdb.git * symtab.h (enum address_class): Remove LOC_INDIRECT and LOC_HP_THREAD_LOCAL_STATIC. * findvar.c (symbol_read_needs_frame, read_var_value): Do not handle LOC_INDIRECT or LOC_HP_THREAD_LOCAL_STATIC. (read_var_value): Likewise. * buildsym.c (finish_block): Likewise. * objfiles.c (objfile_relocate): Likewise. * printcmd.c (address_info): Likewise. * symmisc.c (print_symbol, print_partial_symbols): Likewise. * tracepoint.c (scope_info): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 18e7ba11de..299f3fefee 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,17 @@ +2008-05-22 Ulrich Weigand + + * symtab.h (enum address_class): Remove LOC_INDIRECT and + LOC_HP_THREAD_LOCAL_STATIC. + + * findvar.c (symbol_read_needs_frame, read_var_value): Do not + handle LOC_INDIRECT or LOC_HP_THREAD_LOCAL_STATIC. + (read_var_value): Likewise. + * buildsym.c (finish_block): Likewise. + * objfiles.c (objfile_relocate): Likewise. + * printcmd.c (address_info): Likewise. + * symmisc.c (print_symbol, print_partial_symbols): Likewise. + * tracepoint.c (scope_info): Likewise. + 2008-05-21 Markus Deuling Maxim Grigoriev diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 282dc4ec24..e9d5d0fcdf 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -297,7 +297,6 @@ finish_block (struct symbol *symbol, struct pending **listhead, case LOC_UNDEF: case LOC_CONST: case LOC_STATIC: - case LOC_INDIRECT: case LOC_REGISTER: case LOC_LOCAL: case LOC_TYPEDEF: @@ -340,7 +339,6 @@ finish_block (struct symbol *symbol, struct pending **listhead, case LOC_UNDEF: case LOC_CONST: case LOC_STATIC: - case LOC_INDIRECT: case LOC_REGISTER: case LOC_LOCAL: case LOC_TYPEDEF: diff --git a/gdb/findvar.c b/gdb/findvar.c index 69fb6fbbd9..1f853b397c 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -362,13 +362,11 @@ symbol_read_needs_frame (struct symbol *sym) case LOC_LOCAL_ARG: case LOC_BASEREG: case LOC_BASEREG_ARG: - case LOC_HP_THREAD_LOCAL_STATIC: return 1; case LOC_UNDEF: case LOC_CONST: case LOC_STATIC: - case LOC_INDIRECT: case LOC_TYPEDEF: case LOC_LABEL: @@ -457,24 +455,6 @@ read_var_value (struct symbol *var, struct frame_info *frame) addr = SYMBOL_VALUE_ADDRESS (var); break; - case LOC_INDIRECT: - { - /* The import slot does not have a real address in it from the - dynamic loader (dld.sl on HP-UX), if the target hasn't - begun execution yet, so check for that. */ - CORE_ADDR locaddr; - struct value *loc; - if (!target_has_execution) - error (_("\ -Attempt to access variable defined in different shared object or load module when\n\ -addresses have not been bound by the dynamic loader. Try again when executable is running.")); - - locaddr = SYMBOL_VALUE_ADDRESS (var); - loc = value_at (lookup_pointer_type (type), locaddr); - addr = value_as_address (loc); - break; - } - case LOC_ARG: if (frame == NULL) return 0; @@ -509,7 +489,6 @@ addresses have not been bound by the dynamic loader. Try again when executable i case LOC_BASEREG: case LOC_BASEREG_ARG: - case LOC_HP_THREAD_LOCAL_STATIC: { struct value *regval; diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 2b30b6c432..235f8ffcb4 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -597,8 +597,7 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets) But I'm leaving out that test, on the theory that they can't possibly pass the tests below. */ if ((SYMBOL_CLASS (sym) == LOC_LABEL - || SYMBOL_CLASS (sym) == LOC_STATIC - || SYMBOL_CLASS (sym) == LOC_INDIRECT) + || SYMBOL_CLASS (sym) == LOC_STATIC) && SYMBOL_SECTION (sym) >= 0) { SYMBOL_VALUE_ADDRESS (sym) += diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 44fb2e1fd7..d698a83908 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1150,20 +1150,6 @@ address_info (char *exp, int from_tty) } break; - case LOC_INDIRECT: - printf_filtered (_("external global (indirect addressing), at address *(")); - fputs_filtered (paddress (load_addr = SYMBOL_VALUE_ADDRESS (sym)), - gdb_stdout); - printf_filtered (")"); - if (section_is_overlay (section)) - { - load_addr = overlay_unmapped_address (load_addr, section); - printf_filtered (_(",\n -- loaded at ")); - fputs_filtered (paddress (load_addr), gdb_stdout); - printf_filtered (_(" in overlay section %s"), section->name); - } - break; - case LOC_REGPARM: printf_filtered (_("an argument in register %s"), gdbarch_register_name (current_gdbarch, val)); @@ -1241,12 +1227,6 @@ address_info (char *exp, int from_tty) } break; - case LOC_HP_THREAD_LOCAL_STATIC: - printf_filtered (_("\ -a thread-local variable at offset %ld from the thread base register %s"), - val, gdbarch_register_name (current_gdbarch, basereg)); - break; - case LOC_OPTIMIZED_OUT: printf_filtered (_("optimized out")); break; diff --git a/gdb/symmisc.c b/gdb/symmisc.c index bb5f6e3ba4..d2306acf89 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -642,12 +642,6 @@ print_symbol (void *args) SYMBOL_BFD_SECTION (symbol))); break; - case LOC_INDIRECT: - fprintf_filtered (outfile, "extern global at *("); - fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (symbol)), outfile); - fprintf_filtered (outfile, "),"); - break; - case LOC_REGISTER: fprintf_filtered (outfile, "register %ld", SYMBOL_VALUE (symbol)); break; @@ -832,9 +826,6 @@ print_partial_symbols (struct partial_symbol **p, int count, char *what, case LOC_STATIC: fputs_filtered ("static", outfile); break; - case LOC_INDIRECT: - fputs_filtered ("extern global", outfile); - break; case LOC_REGISTER: fputs_filtered ("register", outfile); break; diff --git a/gdb/symtab.c b/gdb/symtab.c index 4e2b2a5043..d4f3bfe304 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -1116,7 +1116,6 @@ fixup_symbol_section (struct symbol *sym, struct objfile *objfile) { case LOC_STATIC: case LOC_LABEL: - case LOC_INDIRECT: addr = SYMBOL_VALUE_ADDRESS (sym); break; case LOC_BLOCK: @@ -1151,7 +1150,6 @@ fixup_psymbol_section (struct partial_symbol *psym, struct objfile *objfile) { case LOC_STATIC: case LOC_LABEL: - case LOC_INDIRECT: case LOC_BLOCK: addr = SYMBOL_VALUE_ADDRESS (psym); break; diff --git a/gdb/symtab.h b/gdb/symtab.h index 3bbc3930bc..3b4350ac0e 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -524,26 +524,11 @@ enum address_class LOC_UNRESOLVED, - /* Value is at a thread-specific location calculated by a - target-specific method. This is used only by hppa. */ - - LOC_HP_THREAD_LOCAL_STATIC, - /* The variable does not actually exist in the program. The value is ignored. */ LOC_OPTIMIZED_OUT, - /* The variable is static, but actually lives at * (address). - * I.e. do an extra indirection to get to it. - * This is used on HP-UX to get at globals that are allocated - * in shared libraries, where references from images other - * than the one where the global was allocated are done - * with a level of indirection. - */ - - LOC_INDIRECT, - /* The variable's address is computed by a set of location functions (see "struct symbol_ops" below). */ LOC_COMPUTED, diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 40e3c0fa59..255d0b75d1 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -2520,13 +2520,6 @@ scope_info (char *args, int from_tty) case LOC_OPTIMIZED_OUT: printf_filtered ("optimized out.\n"); continue; - case LOC_HP_THREAD_LOCAL_STATIC: - printf_filtered ("HP thread local static "); - break; - case LOC_INDIRECT: - printf_filtered ("extern (local indirect) at address "); - printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (sym))); - break; case LOC_COMPUTED: case LOC_COMPUTED_ARG: SYMBOL_OPS (sym)->describe_location (sym, gdb_stdout);