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.

Reply via email to