(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr64853.c
       1  /* { dg-do run } */
       2  
       3  struct S
       4  {
       5    int f1;
       6  };
       7  
       8  static struct S a = { 1 };
       9  char b;
      10  static unsigned char *c = &b;
      11  int d, e, f;
      12  
      13  int
      14  fn1 (int p)
      15  {
      16    return 0 ? 0 : p - 1;
      17  }
      18  
      19  static int
      20  fn2 (struct S p)
      21  {
      22    int g = 200;
      23    for (e = 4; e; e = fn1 (e))
      24      {
      25        for (; d; d++)
      26  	;
      27        *c &= p.f1 & g;
      28        g = --*c;
      29        if (f)
      30  	return 0;
      31      }
      32    return 0;
      33  }
      34  
      35  int
      36  main ()
      37  {
      38    fn2 (a);
      39  
      40    if (b != 0) 
      41      __builtin_abort (); 
      42  
      43    return 0;
      44  }