view gcc/testsuite/gcc.dg/Warray-bounds-25.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line source

/* PR tree-optimization/83446 - Bootstrap failed on i686
   { dg-do compile }
   { dg-options "-O2 -Warray-bounds" } */

char a[4];

void f0i (void *d, int n)
{
  if (n < 0) n = 0;

  __builtin_memcpy (d, a + sizeof a - n, n);
}

void f0L (void *d, long n)
{
  if (n < 0) n = 0;

  __builtin_memcpy (d, a + sizeof a - n, n);
}

void f0u (void *d, unsigned n)
{
  if (n < 0) n = 1;

  __builtin_memcpy (d, a + sizeof a - n, n);   /* { dg-bogus "\\\[-Warray-bounds" } */
}

void f1lu (void *d, unsigned long n)
{
  if (n < 1) n = 1;

  __builtin_memcpy (d, a + sizeof a - n, n);   /* { dg-bogus "\\\[-Warray-bounds" } */
}