view gcc/testsuite/gcc.dg/pr61240.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
line wrap: on
line source

/* PR c/61240 */
/* { dg-do compile } */

typedef __PTRDIFF_TYPE__ ptrdiff_t;

ptrdiff_t
foo (ptrdiff_t a[4])
{
  int i[4];
  int *p = i + 2;
  static ptrdiff_t b = p - (p - 1);	/* { dg-bogus "integer overflow in expression" } */
  static ptrdiff_t c = (p - 1) - p;	/* { dg-bogus "integer overflow in expression" } */
  static ptrdiff_t d = (p - 2) - (p - 1);/* { dg-bogus "integer overflow in expression" } */
  static ptrdiff_t e = (p - 1) - (p - 2);/* { dg-bogus "integer overflow in expression" } */
  a[0] = p - (p - 1);			/* { dg-bogus "integer overflow in expression" } */
  a[1] = (p - 1) - p;			/* { dg-bogus "integer overflow in expression" } */
  a[2] = (p - 2) - (p - 1);		/* { dg-bogus "integer overflow in expression" } */
  a[3] = (p - 1) - (p - 2);		/* { dg-bogus "integer overflow in expression" } */
  return b + c + d + e;
}