Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.c-torture/execute/20000815-1.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
struct table_elt { void *exp; struct table_elt *next_same_hash; struct table_elt *prev_same_hash; struct table_elt *next_same_value; struct table_elt *prev_same_value; struct table_elt *first_same_value; struct table_elt *related_value; int cost; int mode; char in_memory; char in_struct; char is_const; char flag; }; struct write_data { int sp : 1; int var : 1; int nonscalar : 1; int all : 1; }; int cse_rtx_addr_varies_p(void *); void remove_from_table(struct table_elt *, int); static struct table_elt *table[32]; void invalidate_memory (writes) struct write_data *writes; { register int i; register struct table_elt *p, *next; int all = writes->all; int nonscalar = writes->nonscalar; for (i = 0; i < 31; i++) for (p = table[i]; p; p = next) { next = p->next_same_hash; if (p->in_memory && (all || (nonscalar && p->in_struct) || cse_rtx_addr_varies_p (p->exp))) remove_from_table (p, i); } } int cse_rtx_addr_varies_p(void *x) { return 0; } void remove_from_table(struct table_elt *x, int y) { abort (); } int main() { struct write_data writes; struct table_elt elt; __builtin_memset(&elt, 0, sizeof(elt)); elt.in_memory = 1; table[0] = &elt; __builtin_memset(&writes, 0, sizeof(writes)); writes.var = 1; writes.nonscalar = 1; invalidate_memory(&writes); return 0; }