1  // { dg-do run }
       2  // { dg-options "-O1" }
       3  
       4  unsigned char a = 1;
       5  char b, e;
       6  long long c;
       7  short d;
       8  int main() {
       9    if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
      10      return 0;
      11    a = ~(1 && a);
      12    c = ~((~a / 8 | -2) & 11007578330939886389LLU);
      13    e = -c;
      14    d = ~c / e;
      15    if (d < 2000)
      16      __builtin_abort();
      17    return 0;
      18  }