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

     1  #include <limits.h>
     2  
     3  gt (a, b)
     4  {
     5    return a > b;
     6  }
     7  
     8  ge (a, b)
     9  {
    10    return a >= b;
    11  }
    12  
    13  lt (a, b)
    14  {
    15    return a < b;
    16  }
    17  
    18  le (a, b)
    19  {
    20    return a <= b;
    21  }
    22  
    23  void
    24  true (c)
    25  {
    26    if (!c)
    27      abort();
    28  }
    29  
    30  void
    31  false (c)
    32  {
    33    if (c)
    34      abort();
    35  }
    36  
    37  f ()
    38  {
    39    true (gt (2, 1));
    40    false (gt (1, 2));
    41  
    42    true (gt (INT_MAX, 0));
    43    false (gt (0, INT_MAX));
    44    true (gt (INT_MAX, 1));
    45    false (gt (1, INT_MAX));
    46  
    47    false (gt (INT_MIN, 0));
    48    true (gt (0, INT_MIN));
    49    false (gt (INT_MIN, 1));
    50    true (gt (1, INT_MIN));
    51  
    52    true (gt (INT_MAX, INT_MIN));
    53    false (gt (INT_MIN, INT_MAX));
    54  
    55    true (ge (2, 1));
    56    false (ge (1, 2));
    57  
    58    true (ge (INT_MAX, 0));
    59    false (ge (0, INT_MAX));
    60    true (ge (INT_MAX, 1));
    61    false (ge (1, INT_MAX));
    62  
    63    false (ge (INT_MIN, 0));
    64    true (ge (0, INT_MIN));
    65    false (ge (INT_MIN, 1));
    66    true (ge (1, INT_MIN));
    67  
    68    true (ge (INT_MAX, INT_MIN));
    69    false (ge (INT_MIN, INT_MAX));
    70  
    71    false (lt (2, 1));
    72    true (lt (1, 2));
    73  
    74    false (lt (INT_MAX, 0));
    75    true (lt (0, INT_MAX));
    76    false (lt (INT_MAX, 1));
    77    true (lt (1, INT_MAX));
    78  
    79    true (lt (INT_MIN, 0));
    80    false (lt (0, INT_MIN));
    81    true (lt (INT_MIN, 1));
    82    false (lt (1, INT_MIN));
    83  
    84    false (lt (INT_MAX, INT_MIN));
    85    true (lt (INT_MIN, INT_MAX));
    86  
    87    false (le (2, 1));
    88    true (le (1, 2));
    89  
    90    false (le (INT_MAX, 0));
    91    true (le (0, INT_MAX));
    92    false (le (INT_MAX, 1));
    93    true (le (1, INT_MAX));
    94  
    95    true (le (INT_MIN, 0));
    96    false (le (0, INT_MIN));
    97    true (le (INT_MIN, 1));
    98    false (le (1, INT_MIN));
    99  
   100    false (le (INT_MAX, INT_MIN));
   101    true (le (INT_MIN, INT_MAX));
   102  }
   103  
   104  main ()
   105  {
   106    f ();
   107    exit (0);
   108  }