https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121964
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Yury Khrustalev <[email protected]>: https://gcc.gnu.org/g:5a8746df980e3532bf6f293f086db21758e90a9e commit r16-5544-g5a8746df980e3532bf6f293f086db21758e90a9e Author: Yury Khrustalev <[email protected]> Date: Wed Sep 3 12:46:33 2025 +0100 dwarf: Save bit stride information for array type entry [PR121964] Lack of DW_AT_bit_stride in a DW_TAG_array_type entry causes GDB to infer incorrect element size for vector types. The causes incorrect display of SVE predicate variables as well as out of bounds memory access when reading contents of SVE predicates from memory in GDB. We also locate DIE referenced by DW_AT_type and set DW_AT_bit_size 1 in it. PR debug/121964 gcc/ * dwarf2out.cc (gen_array_type_die): Add DW_AT_bit_stride attribute for array types based on element type bit precision for integer and boolean element types. gcc/testsuite/ * g++.target/aarch64/dwarf-bit-stride-func.C: New test. * g++.target/aarch64/dwarf-bit-stride-pragma.C: New test. * g++.target/aarch64/dwarf-bit-stride-pragma-sme.C: New test. * g++.target/aarch64/sve/dwarf-bit-stride.C: New test. * gcc.target/aarch64/dwarf-bit-stride-func.c: New test. * gcc.target/aarch64/dwarf-bit-stride-pragma.c: New test. * gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c: New test. * gcc.target/aarch64/sve/dwarf-bit-stride.c: New test.
