diff options
author | Daniel Jacobowitz <drow@false.org> | 2003-02-21 15:24:18 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2003-02-21 15:24:18 +0000 |
commit | 4c2df51b5ace4f5c0a1f8a76cdf536ac4432dd14 (patch) | |
tree | 598c2097c2499be7ad8123ff91575ab6085f08f6 /gdb/ada-lang.c | |
parent | 4cf623b60bb41ce141aa47d27e6d119324cb5ed1 (diff) | |
download | gdb-4c2df51b5ace4f5c0a1f8a76cdf536ac4432dd14.zip gdb-4c2df51b5ace4f5c0a1f8a76cdf536ac4432dd14.tar.gz gdb-4c2df51b5ace4f5c0a1f8a76cdf536ac4432dd14.tar.bz2 |
Based on a patch from Daniel Berlin (dberlin@dberlin.org).
* symtab.h: Add opaque declarations of struct axs_value and
struct agent_expr.
(enum address_class): Add LOC_COMPUTED and LOC_COMPUTED_ARG.
(struct location_funcs): New type.
(struct symbol): Add "loc" to aux_value.
(SYMBOL_LOCATION_BATON, SYMBOL_LOCATION_FUNCS): New macros.
* dwarf2read.c: Include "dwarf2expr.h".
(dwarf2_symbol_mark_computed): New function.
(read_func_scope): Use it.
(var_decode_location): New function.
(new_symbol): Use it.
* dwarf2expr.c, dwarf2expr.h, dwarf2loc.c, dwarf2loc.h: New files.
* Makefile.in (SFILES): Add dwarf2loc.c and dwarf2expr.c.
(dwarf2expr_h, dwarf2loc_h): New variables.
(COMMON_OBS): Add dwarf2expr.o and dwarf2loc.o.
(dwarf2expr.o, dwarf2loc.o): New rules.
(dwarf2read.o): Add $(dwarf2expr_h) and $(dwarf2loc_h).
* buildsym.c (finish_block): Handle LOC_COMPUTED and
LOC_COMPUTED_ARG.
* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
* m2-exp.y (yylex): Likewise.
* printcmd.c (address_info, print_frame_args): Likewise.
* stack.c (print_block_frame_locals, print_frame_arg_vars): Likewise.
* symmisc.c (print_symbol, print_partial_symbols): Likewise.
* ada-lang.c (ada_resolve_subexp, symtab_for_sym)
(ada_add_block_symbols, fill_in_ada_prototype): Likewise.
* symtab.c (lookup_block_symbol): Likewise.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index d5323a1..83d1090 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -2172,6 +2172,8 @@ ada_resolve_subexp (struct expression **expp, int *pos, int deprocedure_p, case LOC_LOCAL_ARG: case LOC_BASEREG: case LOC_BASEREG_ARG: + case LOC_COMPUTED: + case LOC_COMPUTED_ARG: goto FoundNonType; default: break; @@ -3466,6 +3468,8 @@ symtab_for_sym (struct symbol *sym) case LOC_LOCAL_ARG: case LOC_BASEREG: case LOC_BASEREG_ARG: + case LOC_COMPUTED: + case LOC_COMPUTED_ARG: for (j = FIRST_LOCAL_BLOCK; j < BLOCKVECTOR_NBLOCKS (BLOCKVECTOR (s)); j += 1) { @@ -3970,6 +3974,7 @@ ada_add_block_symbols (struct block *block, const char *name, case LOC_REGPARM: case LOC_REGPARM_ADDR: case LOC_BASEREG_ARG: + case LOC_COMPUTED_ARG: arg_sym = sym; break; case LOC_UNRESOLVED: @@ -4033,6 +4038,7 @@ ada_add_block_symbols (struct block *block, const char *name, case LOC_REGPARM: case LOC_REGPARM_ADDR: case LOC_BASEREG_ARG: + case LOC_COMPUTED_ARG: arg_sym = sym; break; case LOC_UNRESOLVED: @@ -4117,6 +4123,7 @@ ada_add_block_symbols (struct block *block, const char *name, case LOC_REGPARM: case LOC_REGPARM_ADDR: case LOC_BASEREG_ARG: + case LOC_COMPUTED_ARG: arg_sym = sym; break; case LOC_UNRESOLVED: @@ -4201,6 +4208,7 @@ fill_in_ada_prototype (struct symbol *func) case LOC_REGPARM: case LOC_LOCAL_ARG: case LOC_BASEREG_ARG: + case LOC_COMPUTED_ARG: TYPE_FIELD_BITPOS (ftype, nargs) = nargs; TYPE_FIELD_BITSIZE (ftype, nargs) = 0; TYPE_FIELD_STATIC_KIND (ftype, nargs) = 0; |