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

     1  /* On H8/300 port, NOTICE_UPDATE_CC had a bug that causes the final
     2     pass to remove test insns that should be kept.  */
     3  
     4  unsigned short
     5  test1 (unsigned short w)
     6  {
     7    if ((w & 0xff00) == 0)
     8      {
     9        if (w == 0)
    10  	w = 2;
    11      }
    12    return w;
    13  }
    14  
    15  unsigned long
    16  test2 (unsigned long w)
    17  {
    18    if ((w & 0xffff0000) == 0)
    19      {
    20        if (w == 0)
    21  	w = 2;
    22      }
    23    return w;
    24  }
    25  
    26  int
    27  test3 (unsigned short a)
    28  {
    29    if (a & 1)
    30      return 1;
    31    else if (a)
    32      return 1;
    33    else
    34      return 0;
    35  }
    36  
    37  int
    38  main ()
    39  {
    40    if (test1 (1) != 1)
    41      abort ();
    42  
    43    if (test2 (1) != 1)
    44      abort ();
    45  
    46    if (test3 (2) != 1)
    47      abort ();
    48  
    49    exit (0);
    50  }