Fix regression in debug info for Ada with DWARF 5
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 16 Aug 2021 13:26:22 +0000 (15:26 +0200)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 16 Aug 2021 13:27:42 +0000 (15:27 +0200)
commitbe024a1285840bf2fc47fcbde32375468a92ce05
tree3e27687ab331c7f8981729eeb517eb509b4500dd
parente660441f94f2ca2ca1bd63c922c6a43737c2259e
Fix regression in debug info for Ada with DWARF 5

add_scalar_info can directly generate a reference to an existing DIE for a
scalar attribute, e.g the upper bound of a VLA, but it does so only if this
existing DIE has a location or is a constant:

              if (get_AT (decl_die, DW_AT_location)
                  || get_AT (decl_die, DW_AT_data_member_location)
                  || get_AT (decl_die, DW_AT_const_value))

Now, in DWARF 5, members of a structure that are bitfields no longer have a
DW_AT_data_member_location but a DW_AT_data_bit_offset attribute instead, so
the condition is bypassed.

gcc/
* dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset.
gcc/dwarf2out.c