https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45996
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |4.3.5 Target Milestone|8.0 |9.0 Known to fail| |6.4.0, 7.3.0, 8.0 --- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> --- I guess the problematic code snipped is in varasm.c: 1794 /* Handle a user-specified function alignment. 1795 Note that we still need to align to DECL_ALIGN, as above, 1796 because ASM_OUTPUT_MAX_SKIP_ALIGN might not do any alignment at all. */ 1797 if (! DECL_USER_ALIGN (decl) 1798 && align_functions_log > align 1799 && optimize_function_for_speed_p (cfun)) <--- HERE 1800 { 1801 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN 1802 int align_log = align_functions_log; 1803 #endif 1804 int max_skip = align_functions - 1; 1805 if (flag_limit_function_alignment && crtl->max_insn_address > 0 1806 && max_skip >= crtl->max_insn_address) 1807 max_skip = crtl->max_insn_address - 1; 1808 1809 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN 1810 ASM_OUTPUT_MAX_SKIP_ALIGN (asm_out_file, align_log, max_skip); 1811 #else 1812 ASM_OUTPUT_ALIGN (asm_out_file, align_functions_log); 1813 #endif 1814 } Let me improve that in next stage1.