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

     1  typedef unsigned long long ULL;
     2  ULL back;
     3  ULL hpart, lpart;
     4  ULL
     5  build(long h, long l)
     6  {
     7    hpart = h;
     8    hpart <<= 32;
     9    lpart = l;
    10    lpart &= 0xFFFFFFFFLL;
    11    back = hpart | lpart;
    12    return back;
    13  }
    14  
    15  main()
    16  {
    17    if (build(0, 1) != 0x0000000000000001LL)
    18      abort();
    19    if (build(0, 0) != 0x0000000000000000LL)
    20      abort();
    21    if (build(0, 0xFFFFFFFF) != 0x00000000FFFFFFFFLL)
    22      abort();
    23    if (build(0, 0xFFFFFFFE) != 0x00000000FFFFFFFELL)
    24      abort();
    25    if (build(1, 1) != 0x0000000100000001LL)
    26      abort();
    27    if (build(1, 0) != 0x0000000100000000LL)
    28      abort();
    29    if (build(1, 0xFFFFFFFF) != 0x00000001FFFFFFFFLL)
    30      abort();
    31    if (build(1, 0xFFFFFFFE) != 0x00000001FFFFFFFELL)
    32      abort();
    33    if (build(0xFFFFFFFF, 1) != 0xFFFFFFFF00000001LL)
    34      abort();
    35    if (build(0xFFFFFFFF, 0) != 0xFFFFFFFF00000000LL)
    36      abort();
    37    if (build(0xFFFFFFFF, 0xFFFFFFFF) != 0xFFFFFFFFFFFFFFFFLL)
    38      abort();
    39    if (build(0xFFFFFFFF, 0xFFFFFFFE) != 0xFFFFFFFFFFFFFFFELL)
    40      abort();
    41    exit(0);
    42  }