summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/warn/pr30636.C
blob: 32ce6edbd61c7923f970a70ea8caef4127d090a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* { dg-do compile } */
/* { dg-options "-O2 -Warray-bounds" } */

typedef char one_buffer[512];
static one_buffer emergency_buffer[4];

void free_exception (void *vptr)
{
  char *base = (char *) &emergency_buffer[0][0];
  char *ptr = (char *) vptr;
  if (ptr >= base && ptr < base + sizeof (emergency_buffer)) /* { dg-bogus "subscript" } */
    {
      /* Do something. */
      __builtin_exit (0);
    }
}