On 07/07/2016 09:06 PM, James Bowman wrote:
FT32 makes use of multiple address spaces. When trying to inspect
objects in GDB, GDB was treating them as a straight "const". The cause
seems to be in GCC DWARF2 output.
This output is handled in gcc/gcc/dwarf2out.c, where modified_type_die()
checks that TYPE has qualifiers CV_QUALS. However while TYPE has
ADDR_SPACE qualifiers, the modified_type_die() explicitly discards the
ADDR_SPACE qualifiers.
This patch retains the ADDR_SPACE qualifiers as modified_type_die()
outputs the DWARF type tree. This allows the types to match, and correct
type information for the object is emitted.
OK to commit?
[gcc]
2016-07-07 James Bowman <james.bow...@ftdichip.com>
* gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE
qualifiers.
(add_type_attribute) likewise.
Normally any change in this part of the compiler would have to go
through a bootstrap and regression test (ie, compare the result of
make-check before/after your patch with no regressions).
But nothing in a bootstrap is really going to exercise address space
qualifiers. So I think it should be sufficient to confirm that you've
built either your FT32 target or some other target with this patch.
Once you've confirmed that the compiler still builds, this is OK for the
trunk.
jeff