https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93667
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Martin Jambor <[email protected]>: https://gcc.gnu.org/g:665c5bad168ab63629b29ed2ce08ed042c088dc2 commit r10-6722-g665c5bad168ab63629b29ed2ce08ed042c088dc2 Author: Martin Jambor <[email protected]> Date: Wed Feb 19 11:08:40 2020 +0100 sra: Avoid totally scalarizing overallping field_decls (PR 93667) [[no_unique_address]] C++ attribute can cause two fields of a RECORD_TYPE overlap, which currently confuses the totally scalarizing code into creating invalid access tree. For GCC 10, I'd like to simply disable total scalarization of types where this happens. For GCC 11 I'll write down a TODO item to enable total scalarization of cases like this where the problematic fields are basically empty - despite having a non-zero size - i.e. when they are just RECORD_TYPEs without any data fields. 2020-02-19 Martin Jambor <[email protected]> gcc/ PR tree-optimization/93667 * tree-sra.c (scalarizable_type_p): Return false if record fields do not follow wach other. gcc/testsuite/ PR tree-optimization/93667 * g++.dg/tree-ssa/pr93667.C: New test.
