https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83989

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-01-23
     Ever confirmed|0                           |1

--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Here's a more minimal version:

/* compile with: -O2 -Wrestrict */

__attribute__((__malloc__)) extern void *my_malloc(__SIZE_TYPE__ n);

#define SIZE 32

void test (void)
{
  void *recmem = __builtin_malloc(SIZE);
  while (1)
    {
      void *oldrecmem = recmem;
      recmem = __builtin_malloc(SIZE);
      __builtin_memcpy(recmem, oldrecmem, SIZE);
    }
}

void test_2 (void)
{
  void *recmem = my_malloc(SIZE);
  while (1)
    {
      void *oldrecmem = recmem;
      recmem = my_malloc(SIZE);
      __builtin_memcpy(recmem, oldrecmem, SIZE);
    }
}

Reply via email to