(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
20000815-1.c
       1  struct table_elt
       2  {
       3    void *exp;
       4    struct table_elt *next_same_hash;
       5    struct table_elt *prev_same_hash;
       6    struct table_elt *next_same_value;
       7    struct table_elt *prev_same_value;
       8    struct table_elt *first_same_value;
       9    struct table_elt *related_value;
      10    int cost;
      11    int mode;
      12    char in_memory;
      13    char in_struct;
      14    char is_const;
      15    char flag;
      16  };
      17  
      18  struct write_data
      19  {
      20    int sp : 1;			 
      21    int var : 1;			 
      22    int nonscalar : 1;		 
      23    int all : 1;			 
      24  };
      25  
      26  int cse_rtx_addr_varies_p(void *);
      27  void remove_from_table(struct table_elt *, int);
      28  static struct table_elt *table[32];
      29  
      30  void
      31  invalidate_memory (writes)
      32       struct write_data *writes;
      33  {
      34    register int i;
      35    register struct table_elt *p, *next;
      36    int all = writes->all;
      37    int nonscalar = writes->nonscalar;
      38  
      39    for (i = 0; i < 31; i++)
      40      for (p = table[i]; p; p = next)
      41        {
      42  	next = p->next_same_hash;
      43  	if (p->in_memory
      44  	    && (all
      45  		|| (nonscalar && p->in_struct)
      46  		|| cse_rtx_addr_varies_p (p->exp)))
      47  	  remove_from_table (p, i);
      48        }
      49  }
      50  
      51  int cse_rtx_addr_varies_p(void *x) { return 0; }
      52  void remove_from_table(struct table_elt *x, int y) { abort (); }
      53  
      54  int
      55  main()
      56  {
      57    struct write_data writes;
      58    struct table_elt elt;
      59  
      60    __builtin_memset(&elt, 0, sizeof(elt));
      61    elt.in_memory = 1;
      62    table[0] = &elt;
      63  
      64    __builtin_memset(&writes, 0, sizeof(writes));
      65    writes.var = 1;
      66    writes.nonscalar = 1;
      67  
      68    invalidate_memory(&writes);
      69    return 0;
      70  }