------- Comment #2 from pinskia at gcc dot gnu dot org 2006-05-02 07:40 ------- And here is the C example (so this does not become not release blocking): typedef struct atype { float bg[1], cg[1]; _Bool ant; }atype;
void cp_assert(_Bool*, float*, int*, _Bool*); void f(atype **rng_stream, int *error, float u) { _Bool t = *rng_stream != 0; float routinep; _Bool failure; cp_assert ( &t, &routinep, error, &failure); if (failure == 0) { typedef float ty[1]; ty *tt = &((*rng_stream)->bg); int i = 1; do { (*tt)[i - 1] = u; i ++; }while (i > 1); { ty *tt = &(*rng_stream)->cg; int i = 1; do { (*tt)[i - 1] = u; i ++; }while (i > 1); } } } -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dberlin at gcc dot gnu dot | |org GCC target triplet|x86_64-unknown-linux-gnu | Summary|[4.2 Regression] ICE: |[4.2 Regression] ICE: |add_virtual_operand, at |add_virtual_operand with |tree-ssa-operands.c:1284 |pointers to arrays http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27373