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

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x32
             Status|UNCONFIRMED                 |RESOLVED
                URL|http://gcc.gnu.org/ml/gcc-p |
                   |atches/2011-02/msg00909.htm |
                   |l                           |
         Resolution|                            |FIXED
   Target Milestone|---                         |4.7.0

--- Comment #22 from Uros Bizjak <ubizjak at gmail dot com> 2011-07-28 17:06:49 
UTC ---
The testcase, referred in Comment 0 is:

struct _Unwind_Context
{
  void *reg[17];
  void *ra;
};
extern void bar (struct _Unwind_Context *);
void
__frame_state_for (void *pc_target)
{
  struct _Unwind_Context context;
  __builtin_memset (&context, 0, sizeof (struct _Unwind_Context));
  context.ra = pc_target;
  bar (&context);
}

Compiling with recent mainline works OK:

~/gcc-build/gcc/cc1 -O2 -fpic -mx32 pr47725.c

__frame_state_for:
.LFB0:
    .cfi_startproc
    subq    $88, %rsp
    .cfi_def_cfa_offset 96
    movq    %rdi, %rsi
    xorl    %eax, %eax
    movq    %rsp, %rdi
    movl    $9, %ecx
    rep stosq
    movq    %rsp, %rdi
    movl    %esi, 68(%rsp)
    call    bar@PLT
    addq    $88, %rsp
    .cfi_def_cfa_offset 8
    ret

Fixed.

Reply via email to