(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
pr70336.c
       1  /* PR c++/70336 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Wconversion" } */
       4  
       5  void
       6  f1 (unsigned char * x, int y, int z)
       7  {
       8    x[z / 8] |= (unsigned char) (0x80 >> y);	/* { dg-bogus "may alter its value" } */
       9  }
      10  
      11  unsigned char
      12  f2 (unsigned char x, int y)
      13  {
      14    x = x | (unsigned char) (0x80 >> y);		/* { dg-bogus "may alter its value" } */
      15    return x;
      16  }
      17  
      18  unsigned char
      19  f3 (unsigned char x, int y)
      20  {
      21    x = x | (unsigned char) (y & 255);		/* { dg-bogus "may alter its value" } */
      22    return x;
      23  }
      24  
      25  unsigned char
      26  f4 (unsigned char x, unsigned char y)
      27  {
      28    x = x | (unsigned char) (y & 255);		/* { dg-bogus "may alter its value" } */
      29    return x;
      30  }
      31  
      32  unsigned char
      33  f5 (unsigned char x, int y)
      34  {
      35    x = (unsigned char) (y & 255);		/* { dg-bogus "may alter its value" } */
      36    return x;
      37  }