view gcc/testsuite/gcc.dg/torture/pr86554-1.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
line wrap: on
line source

/* { dg-do run } */

struct foo
{
  __UINT32_TYPE__ x;
};
typedef struct foo foo;

static inline __INT32_TYPE__ zot(foo *f)
{
  int ret;

  if (f->x > 0x7FFFFFFF)
    ret = (__INT32_TYPE__)(f->x - 0x7FFFFFFF);
  else
    ret = (__INT32_TYPE__)f->x - 0x7FFFFFFF;
  return ret;
}

void __attribute__((noinline,noclone)) bar(foo *f)
{
  __INT32_TYPE__ ret = zot(f);
  volatile __INT32_TYPE__ x = ret;
  if (ret < 1)
    __builtin_abort ();
}

int main()
{
  foo f;
  f.x = 0x800003f8;

  bar(&f);
  return 0;
}