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

            Bug ID: 59175
           Summary: gcc.target/i386/memcpy-2.c fails with -m32
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: hubicka at gcc dot gnu.org

On x86, gcc.target/i386/memcpy-2.c fails with -m32
With -m64, we got

[hjl@gnu-6 good]$ cat x.i.015t.ssa

;; Function t (t, funcdef_no=0, decl_uid=1792, symbol_order=2)

t (unsigned int c)
{
  long unsigned int _4;
  void * b.0_5;
  void * a.1_6;

  <bb 2>:
  if (c_2(D) <= 9)
    goto <bb 3>;
  else
    goto <bb 4>;

  <bb 3>:
  _4 = (long unsigned int) c_2(D);
  b.0_5 = b;
  a.1_6 = a;
  memcpy (a.1_6, b.0_5, _4);

  <bb 4>:
  return;

}


[hjl@gnu-6 good]$ 

With -m32, we got

[hjl@gnu-6 bad]$ cat x.i.015t.ssa

;; Function t (t, funcdef_no=0, decl_uid=1763, symbol_order=2)

t (unsigned int c)
{
  void * b.0_4;
  void * a.1_5;

  <bb 2>:
  if (c_2(D) <= 9)
    goto <bb 3>;
  else
    goto <bb 4>;

  <bb 3>:
  b.0_4 = b;
  a.1_5 = a;
  memcpy (a.1_5, b.0_4, c_2(D));

  <bb 4>:
  return;

}


[hjl@gnu-6 bad]$ 

get_range_info returns VR_VARYING on c_2(D), but VR_RANGE
on _4.

Reply via email to