1  /* PR c/59846 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Wlogical-op -Wtype-limits" } */
       4  
       5  _Bool
       6  fn1 (unsigned int p)
       7  {
       8    return 0ULL > p; /* { dg-warning "15:comparison is always false due to limited range of data type" } */
       9  }
      10  
      11  _Bool
      12  fn2 (unsigned int p)
      13  {
      14    return 0ULL <= p; /* { dg-warning "15:comparison is always true due to limited range of data type" } */
      15  }
      16  
      17  _Bool
      18  fn3 (unsigned int p)
      19  {
      20    return p >= 0U; /* { dg-warning "12:comparison of unsigned expression in '>= 0' is always true" } */
      21  }
      22  
      23  _Bool
      24  fn4 (unsigned int p)
      25  {
      26    return p < 0U; /* { dg-warning "12:comparison of unsigned expression in '< 0' is always false" } */
      27  }
      28  
      29  _Bool
      30  fn5 (_Bool p)
      31  {
      32    return p || !p; /* { dg-warning "12:logical" } */
      33  }
      34  
      35  _Bool
      36  fn6 (_Bool p)
      37  {
      38    return p && !p; /* { dg-warning "12:logical" } */
      39  }