(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
pr37924.c
       1  /* PR c/37924 */
       2  
       3  extern void abort (void);
       4  
       5  signed char a;
       6  unsigned char b;
       7  
       8  int
       9  test1 (void)
      10  {
      11    int c = -1;
      12    return ((unsigned int) (a ^ c)) >> 9;
      13  }
      14  
      15  int
      16  test2 (void)
      17  {
      18    int c = -1;
      19    return ((unsigned int) (b ^ c)) >> 9;
      20  }
      21  
      22  int
      23  main (void)
      24  {
      25    a = 0;
      26    if (test1 () != (-1U >> 9))
      27      abort ();
      28    a = 0x40;
      29    if (test1 () != (-1U >> 9))
      30      abort ();
      31    a = 0x80;
      32    if (test1 () != (a < 0) ? 0 : (-1U >> 9))
      33      abort ();
      34    a = 0xff;
      35    if (test1 () != (a < 0) ? 0 : (-1U >> 9))
      36      abort ();
      37    b = 0;
      38    if (test2 () != (-1U >> 9))
      39      abort ();
      40    b = 0x40;
      41    if (test2 () != (-1U >> 9))
      42      abort ();
      43    b = 0x80;
      44    if (test2 () != (-1U >> 9))
      45      abort ();
      46    b = 0xff;
      47    if (test2 () != (-1U >> 9))
      48      abort ();
      49    return 0;
      50  }