https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105856
Roger Sayle <roger at nextmovesoftware dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|ice in emit_move_insn, at |[13 Regression] ice in |expr.cc:4011 |emit_move_insn, at | |expr.cc:4011 Assignee|unassigned at gcc dot gnu.org |roger at nextmovesoftware dot com CC| |roger at nextmovesoftware dot com Priority|P3 |P1 Version|12.0 |13.0 Status|UNCONFIRMED |ASSIGNED Keywords| |ice-on-valid-code Target Milestone|--- |13.0 Last reconfirmed| |2022-06-05 Target| |arm* Ever confirmed|0 |1 --- Comment #2 from Roger Sayle <roger at nextmovesoftware dot com> --- Mine. Sorry for the breakage. I've a fix that avoids the ICE on ARM, and allows GCC to generate the following code for this testcase: g_329_3: mov r0, #6 b func_19 [i.e. the same code as without the #pragma pack(1)]. This is a big improvement on GCC v12 which generates (both with and without #pragma pack(1)): g_329_3: movw r3, #:lower16:.LANCHOR0 movt r3, #:upper16:.LANCHOR0 ldr r0, [r3] b func_19 I'm bootstrapping and regression testing on x86_64 now.