https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113723
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-02-04 Ever confirmed|0 |1 Summary|-freorder-blocks-and-partit |switch (jump) tables don't |ion emits bogus asm |get along with |directives on aarch64 |-freorder-blocks-and-partit | |ion on non-x86 Status|UNCONFIRMED |NEW --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- x86 works via using .long: .long .L13-.L4 For x86 we get: (jump_table_data 18 17 19 (addr_diff_vec:SI (label_ref:DI 17) While on aarch64 we get incorrectly: (jump_table_data 12 11 13 (addr_diff_vec:QI (label_ref:DI 11) The shortening pass turns it into QI. But that is not the only issue.