(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
lto/
tbaa-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -flto -fdump-tree-evrp" } */
       3  typedef struct rtx_def *rtx;
       4  typedef struct cselib_val_struct
       5  {
       6    union
       7    {
       8    } u;
       9    struct elt_loc_list *locs;
      10  }
      11  cselib_val;
      12  struct elt_loc_list
      13  {
      14    struct elt_loc_list *next;
      15    rtx loc;
      16  };
      17  static int n_useless_values;
      18  unchain_one_elt_loc_list (pl)
      19       struct elt_loc_list **pl;
      20  {
      21    struct elt_loc_list *l = *pl;
      22    *pl = l->next;
      23  }
      24  
      25  discard_useless_locs (x, info)
      26       void **x;
      27  {
      28    cselib_val *v = (cselib_val *) * x;
      29    struct elt_loc_list **p = &v->locs;
      30    int had_locs = v->locs != 0;
      31    while (*p)
      32      {
      33        unchain_one_elt_loc_list (p);
      34        p = &(*p)->next;
      35      }
      36    if (had_locs && v->locs == 0)
      37      {
      38        n_useless_values++;
      39      }
      40  }
      41  /* { dg-final { scan-tree-dump-times "n_useless_values" 2 "evrp" } } */