------- Comment #10 from pinskia at gcc dot gnu dot org 2007-08-20 11:55 ------- Here is a new reduced testcase (compile at -O3 -fno-strict-aliasing): struct rxvt_salloc { char *firstblock; unsigned int firstfree; }; struct line_t { unsigned int *t; unsigned int f; }; struct rxvt_salloc *talloc; struct line_t *row_buf; static inline unsigned * alloc (struct rxvt_salloc *this1) { void *r; if (this1->firstfree > 65536) this1->firstfree = 4; r = (void *) ((char *)this1->firstblock + this1->firstfree); return (unsigned *)r; } void scr_reset (int qlines) { struct line_t *qline; int qrow; for (qrow = 0; qlines--; qrow++) (qline = row_buf)->t = alloc (talloc); qline->f &= ~0x0001; qline->t = alloc (talloc); }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30840