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

     1  /* Copyright (C) 2002 Free Software Foundation.
     2  
     3     Test for correctness of composite comparisons.
     4  
     5     Written by Roger Sayle, 3rd June 2002.  */
     6  
     7  extern void abort (void);
     8  
     9  int ieq (int x, int y, int ok)
    10  {
    11    if ((x<=y) && (x>=y))
    12      {
    13        if (!ok) abort ();
    14      }
    15    else
    16      if (ok) abort ();
    17  
    18    if ((x<=y) && (x==y))
    19      {
    20        if (!ok) abort ();
    21      }
    22    else
    23      if (ok) abort ();
    24  
    25    if ((x<=y) && (y<=x))
    26      {
    27        if (!ok) abort ();
    28      }
    29    else
    30      if (ok) abort ();
    31  
    32    if ((y==x) && (x<=y))
    33      {
    34        if (!ok) abort ();
    35      }
    36    else
    37      if (ok) abort ();
    38  }
    39  
    40  int ine (int x, int y, int ok)
    41  {
    42    if ((x<y) || (x>y))
    43      {
    44        if (!ok) abort ();
    45      }
    46    else
    47      if (ok) abort ();
    48  }
    49  
    50  int ilt (int x, int y, int ok)
    51  {
    52    if ((x<y) && (x!=y))
    53      {
    54        if (!ok) abort ();
    55      }
    56    else
    57      if (ok) abort ();
    58  }
    59  
    60  int ile (int x, int y, int ok)
    61  {
    62    if ((x<y) || (x==y))
    63      {
    64        if (!ok) abort ();
    65      }
    66    else
    67      if (ok) abort ();
    68  }
    69  
    70  int igt (int x, int y, int ok)
    71  {
    72    if ((x>y) && (x!=y))
    73      {
    74        if (!ok) abort ();
    75      }
    76    else
    77      if (ok) abort ();
    78  }
    79  
    80  int ige (int x, int y, int ok)
    81  {
    82    if ((x>y) || (x==y))
    83      {
    84        if (!ok) abort ();
    85      }
    86    else
    87      if (ok) abort ();
    88  }
    89  
    90  int
    91  main ()
    92  {
    93    ieq (1, 4, 0);
    94    ieq (3, 3, 1);
    95    ieq (5, 2, 0);
    96  
    97    ine (1, 4, 1);
    98    ine (3, 3, 0);
    99    ine (5, 2, 1);
   100  
   101    ilt (1, 4, 1);
   102    ilt (3, 3, 0);
   103    ilt (5, 2, 0);
   104  
   105    ile (1, 4, 1);
   106    ile (3, 3, 1);
   107    ile (5, 2, 0);
   108  
   109    igt (1, 4, 0);
   110    igt (3, 3, 0);
   111    igt (5, 2, 1);
   112  
   113    ige (1, 4, 0);
   114    ige (3, 3, 1);
   115    ige (5, 2, 1);
   116  
   117    return 0;
   118  }
   119