(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
arith-1.c
       1  unsigned
       2  sat_add (unsigned i)
       3  {
       4    unsigned ret = i + 1;
       5    if (ret < i)
       6      ret = i;
       7    return ret;
       8  }
       9  
      10  unsigned
      11  sat_add2 (unsigned i)
      12  {
      13    unsigned ret = i + 1;
      14    if (ret > i)
      15      return ret;
      16    return i;
      17  }
      18  
      19  unsigned
      20  sat_add3 (unsigned i)
      21  {
      22    unsigned ret = i - 1;
      23    if (ret > i)
      24      ret = i;
      25    return ret;
      26  }
      27  
      28  unsigned
      29  sat_add4 (unsigned i)
      30  {
      31    unsigned ret = i - 1;
      32    if (ret < i)
      33      return ret;
      34    return i;
      35  }
      36  main ()
      37  {
      38    if (sat_add (~0U) != ~0U)
      39      abort ();
      40    if (sat_add2 (~0U) != ~0U)
      41      abort ();
      42    if (sat_add3 (0U) != 0U)
      43      abort ();
      44    if (sat_add4 (0U) != 0U)
      45      abort ();
      46    exit (0);
      47  }