RE: dynamic array's upper bound evaluated as address for AVR target
"Sivanupandi, Pitchumani" <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAC140656783604CABA6AE60C2A6D5A4A2ED2425@penmbx01> |
> -----Original Message----- > From: Pierre-Marie de Rodat [mailto:[email protected]] > Sent: 14 October 2015 12:24 > To: Sivanupandi, Pitchumani; [email protected] > Cc: Andrew Burgess; [email protected]; [email protected] > Subject: Re: dynamic array's upper bound evaluated as address for AVR target > > On 10/14/2015 08:32 AM, Sivanupandi, Pitchumani wrote: > > Target hook for integer_to_address does some manipulation on the given > value. > > In AVR target, it adds SRAM memory mask to the value to make that SRAM > address. > > This is what I observed, but I wonder: why do we need this in the first > place? In what situation do we have an integer on which we need to apply a > mask to get an address (i.e. from where does this integer come?). It is not meant for integer to address conversion, rather transforming the location expression value as target address (value.c:value_as_address) if target has some special handling. In AVR case, to differentiate the memory type (flash, sram, eeprom) we have this mask so that debugger can identify the correct memory type from that address. > > Function dwarf2_locexpr_baton_eval is called by > > dwarf2_evaluate_property for location expression (from > > resolve_dynamic_range. i.e. to resolve bounds of dynamic array e.g. int > int_vla[n] where n is function parameter). > > Then maybe we should add this expect_address parameter to both > dwarf2_evaluate_property and dwarf2_locexpr_baton_eval… Ok. I'll try it out. Thanks. Regards, Pitchumani