(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr86554-1.c
       1  /* { dg-do run } */
       2  
       3  struct foo
       4  {
       5    __UINT32_TYPE__ x;
       6  };
       7  typedef struct foo foo;
       8  
       9  static inline __INT32_TYPE__ zot(foo *f)
      10  {
      11    int ret;
      12  
      13    if (f->x > 0x7FFFFFFF)
      14      ret = (__INT32_TYPE__)(f->x - 0x7FFFFFFF);
      15    else
      16      ret = (__INT32_TYPE__)f->x - 0x7FFFFFFF;
      17    return ret;
      18  }
      19  
      20  void __attribute__((noinline,noclone)) bar(foo *f)
      21  {
      22    __INT32_TYPE__ ret = zot(f);
      23    volatile __INT32_TYPE__ x = ret;
      24    if (ret < 1)
      25      __builtin_abort ();
      26  }
      27  
      28  int main()
      29  {
      30    foo f;
      31    f.x = 0x800003f8;
      32  
      33    bar(&f);
      34    return 0;
      35  }