[Bug target/47324] r157762 caused g++.dg/torture/stackalign failures with -O3 -g at -m32 on darwin

howarth at nitro dot med.uc.edu gcc-bugzilla@gcc.gnu.org
Wed Feb 9 03:32:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47324

--- Comment #19 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-02-09 02:50:21 UTC ---
Could this be the problem code?

static void
output_cfa_loc (dw_cfi_ref cfi)
{
  dw_loc_descr_ref loc;
  unsigned long size;

  if (cfi->dw_cfi_opc == DW_CFA_expression)
    {
      dw2_asm_output_data (1, cfi->dw_cfi_oprnd1.dw_cfi_reg_num, NULL); <======
      loc = cfi->dw_cfi_oprnd2.dw_cfi_loc;
    }
  else
    loc = cfi->dw_cfi_oprnd1.dw_cfi_loc;

  /* Output the size of the block.  */
  size = size_of_locs (loc);
  dw2_asm_output_data_uleb128 (size, NULL);

  /* Now output the operations themselves.  */
  output_loc_sequence (loc);
}

dw_cfi_oprnd1.dw_cfi_reg_num is being passed to dw2_asm_output_data() directly
with out being processed through DWARF2_FRAME_REG_OUT first.



More information about the Gcc-bugs mailing list