(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
uninit-1-O0.c
       1  /* Spurious uninitialized variable warnings, case 1.
       2     Taken from cppfiles.c (merge_include_chains) */
       3  /* { dg-do compile } */
       4  /* { dg-options "-Wuninitialized" } */
       5  
       6  struct list
       7  {
       8    struct list *next;
       9    int id;
      10  };
      11  
      12  extern void free (void *);
      13  
      14  void remove_dupes (struct list *el)
      15  {
      16    struct list *p, *q, *r;  /* { dg-bogus "r" "uninitialized variable warning" } */
      17  
      18    for (p = el; p; p = p->next)
      19    {
      20      for (q = el; q != p; q = q->next)
      21        if (q->id == p->id)
      22        {
      23  	r->next = p->next;
      24  	free (p);
      25  	p = r;
      26  	break;
      27        }
      28      r = p;
      29    }
      30  }