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

     1  #include <limits.h>
     2  
     3  int __attribute__((noinline)) nge(int a, int b) {return -(a >= b);}
     4  int __attribute__((noinline)) ngt(int a, int b) {return -(a > b);}
     5  int __attribute__((noinline)) nle(int a, int b) {return -(a <= b);}
     6  int __attribute__((noinline)) nlt(int a, int b) {return -(a < b);}
     7  int __attribute__((noinline)) neq(int a, int b) {return -(a == b);}
     8  int __attribute__((noinline)) nne(int a, int b) {return -(a != b);}
     9  int __attribute__((noinline)) ngeu(unsigned a, unsigned b) {return -(a >= b);}
    10  int __attribute__((noinline)) ngtu(unsigned a, unsigned b) {return -(a > b);}
    11  int __attribute__((noinline)) nleu(unsigned a, unsigned b) {return -(a <= b);}
    12  int __attribute__((noinline)) nltu(unsigned a, unsigned b) {return -(a < b);}
    13  
    14  
    15  int main()
    16  {
    17    if (nge(INT_MIN, INT_MAX) !=  0) abort();
    18    if (nge(INT_MAX, INT_MIN) != -1) abort();
    19    if (ngt(INT_MIN, INT_MAX) !=  0) abort();
    20    if (ngt(INT_MAX, INT_MIN) != -1) abort();
    21    if (nle(INT_MIN, INT_MAX) != -1) abort();
    22    if (nle(INT_MAX, INT_MIN) !=  0) abort();
    23    if (nlt(INT_MIN, INT_MAX) != -1) abort();
    24    if (nlt(INT_MAX, INT_MIN) !=  0) abort();
    25  
    26    if (neq(INT_MIN, INT_MAX) !=  0) abort();
    27    if (neq(INT_MAX, INT_MIN) !=  0) abort();
    28    if (nne(INT_MIN, INT_MAX) != -1) abort();
    29    if (nne(INT_MAX, INT_MIN) != -1) abort();
    30  
    31    if (ngeu(0, ~0U) !=  0) abort();
    32    if (ngeu(~0U, 0) != -1) abort();
    33    if (ngtu(0, ~0U) !=  0) abort();
    34    if (ngtu(~0U, 0) != -1) abort();
    35    if (nleu(0, ~0U) != -1) abort();
    36    if (nleu(~0U, 0) !=  0) abort();
    37    if (nltu(0, ~0U) != -1) abort();
    38    if (nltu(~0U, 0) !=  0) abort();
    39    
    40    exit(0);
    41  }