https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118600
--- Comment #1 from Gaius Mulley <gaius at gcc dot gnu.org> --- Created attachment 60236 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60236&action=edit PR-118600-Assigning-to-a-record-causes-alignment-exception.patch Proposed fix. This exploratory proposed fix tests to see if the assignment lhs and rhs types are GCC equivalent. If rhs and rhs are not GCC equivalent then it copies records by fields and uses __builtin_strncpy to copy strings into arrays. $ gm2 -fm2-dump=all -fdump-lang-all strcons.mod -fdump-tree-all $ cat a-strcons.mod.007t.gimple PROC _M2_strcons_init (INTEGER argc, PROC * argv, PROC * envp) { year.0_1 = year; date.year = year.0_1; month.1_2 = month; date.month = month.1_2; day.2_3 = day; date.day = day.2_3; date.year = 1623; date.month = 6; date.day = 19; __builtin_strncpy (&person.name, "Blaise Pascal", 14); person.DateOfBirth = date; }
