From a67af2b9de8208a715df12a4fa4da0d05c08570e Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 26 Jan 2004 20:36:32 +0000 Subject: 2004-01-26 Andrew Cagney * dwarf2loc.c (dwarf_expr_frame_base): Use SYMBOL_OPS instead of SYMBOL_LOCATION_FUNCS (dwarf2_loclist_funcs, dwarf2_locexpr_funcs): Change type to "struct symbol_ops". * dwarf2loc.h (dwarf2_locexpr_funcs, dwarf2_loclist_funcs): Change type to "struct symbol_ops". * symtab.h (struct symbol_ops): Rename "struct location_funcs". (struct symbol): Replace ".aux_value.loc.funcs" and ".aux_value.loc.baton" with ".ops" and ".aux_value.ptr". (SYMBOL_OBJFILE): Delete macro. (SYMBOL_LOCATION_FUNCS): Delete macro. (SYMBOL_LOCATION_BATON): Update. * dwarf2read.c (dwarf2_symbol_mark_computed): Set SYMBOL_OPS intead of SYMBOL_LOCATION_FUNCS. * ax-gdb.c (gen_var_ref): Ditto. * printcmd.c (address_info): Ditto. * findvar.c (read_var_value): Ditto. (symbol_read_needs_frame): Ditto. --- gdb/findvar.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'gdb/findvar.c') diff --git a/gdb/findvar.c b/gdb/findvar.c index 34b4a5b..397a56f 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -346,11 +346,12 @@ symbol_read_needs_frame (struct symbol *sym) we failed to consider one. */ case LOC_COMPUTED: case LOC_COMPUTED_ARG: - { - struct location_funcs *symfuncs = SYMBOL_LOCATION_FUNCS (sym); - return (symfuncs->read_needs_frame) (sym); - } - break; + /* FIXME: cagney/2004-01-26: It should be possible to + unconditionally call the SYMBOL_OPS method when available. + Unfortunatly DWARF 2 stores the frame-base (instead of the + function) location in a function's symbol. Oops! For the + moment enable this when/where applicable. */ + return SYMBOL_OPS (sym)->read_needs_frame (sym); case LOC_REGISTER: case LOC_ARG: @@ -564,15 +565,14 @@ addresses have not been bound by the dynamic loader. Try again when executable i case LOC_COMPUTED: case LOC_COMPUTED_ARG: - { - struct location_funcs *funcs = SYMBOL_LOCATION_FUNCS (var); - - if (frame == 0 && (funcs->read_needs_frame) (var)) - return 0; - return (funcs->read_variable) (var, frame); - - } - break; + /* FIXME: cagney/2004-01-26: It should be possible to + unconditionally call the SYMBOL_OPS method when available. + Unfortunatly DWARF 2 stores the frame-base (instead of the + function) location in a function's symbol. Oops! For the + moment enable this when/where applicable. */ + if (frame == 0 && SYMBOL_OPS (var)->read_needs_frame (var)) + return 0; + return SYMBOL_OPS (var)->read_variable (var, frame); case LOC_UNRESOLVED: { -- cgit v1.1