view gcc/testsuite/gcc.dg/pr78138.c @ 131:84e7813d76e9

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

/* PR middle-end/78138 - missing warnings on buffer overflow with non-constant
   source length
   { dg-do compile }
   { dg-options "-O2 -Wformat-overflow" } */

char d [5];

__extension__ typedef __SIZE_TYPE__ size_t;

void* memcpy (void*, const void*, size_t);
extern char* strcpy (char*, const char*);

void f (int i, int j)
{
  strcpy (d, j ? "12345" : "123456");   /* { dg-warning ".strcpy. writing between 6 and 7 bytes into a region of size 5 " } */
}

void g (void *p)
{
  extern unsigned n;
  if (n < 17 || 32 < n) n = 7;

  memcpy (d, p, n);   /* { dg-warning ".memcpy. writing between 7 and 32 bytes into a region of size 5" } */
};