https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113977

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Tan Senqi from comment #4)
> (In reply to Andrew Pinski from comment #3)
> I think gcc can generate a DW_AT_alignment for my struct to solve this
> problem. But why the alignment is considered as 8, I am not sure about this.
> If it is inherited from the default structure alignment requirement on the
> platform, then gcc should specify alignment for those whose alignment is not
> 8. Or 8 is not the default value by DWARF5(i.e. undefined), then it is
> surely a bug in gdb.

So reading the definition of DW_AT_alignment, it is if the alignment is not the
default for that type. In this case it should be 1 as char arrays have
alignment of 1 inside structs.

See https://dwarfstd.org/issues/140528.1.html for the definition.
in this case the ABI specifies the alignment and GCC does not need to emit
DW_AT_alignment since it is not different from the ABI. This would mean the bug
is in gdb's gcc_convert_symbol, eg.:
```
gcc_convert_symbol "z": local symbol
gdb command line:1:1: error: size of array element is not a multiple of its
alignment
```

I am testing the trunk gdb right now to see if it was fixed.

Reply via email to