modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/950704-1.c (about)

     1  int errflag;
     2  
     3  long long
     4  f (long long x, long long y)
     5  {
     6    long long r;
     7  
     8    errflag = 0;
     9    r = x + y;
    10    if (x >= 0)
    11      {
    12        if ((y < 0) || (r >= 0))
    13  	return r;
    14      }
    15    else
    16      {
    17        if ((y > 0) || (r < 0))
    18  	return r;
    19      }
    20    errflag = 1;
    21    return 0;
    22  }
    23  
    24  main ()
    25  {
    26    f (0, 0);
    27    if (errflag)
    28      abort ();
    29  
    30    f (1, -1);
    31    if (errflag)
    32      abort ();
    33  
    34    f (-1, 1);
    35    if (errflag)
    36      abort ();
    37  
    38    f (0x8000000000000000LL, 0x8000000000000000LL);
    39    if (!errflag)
    40      abort ();
    41  
    42    f (0x8000000000000000LL, -1LL);
    43    if (!errflag)
    44      abort ();
    45  
    46    f (0x7fffffffffffffffLL, 0x7fffffffffffffffLL);
    47    if (!errflag)
    48      abort ();
    49  
    50    f (0x7fffffffffffffffLL, 1LL);
    51    if (!errflag)
    52      abort ();
    53  
    54    f (0x7fffffffffffffffLL, 0x8000000000000000LL);
    55    if (errflag)
    56      abort ();
    57  
    58    exit (0);
    59  }