https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91236
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- I've got it: /* We support up to 512-bit values (for V8DFmode). */ unsigned char buffer[64]; int len; while (!partial_defs.is_empty ()) { pd_data pd = partial_defs.pop (); if (TREE_CODE (pd.rhs) == CONSTRUCTOR) + { + size_t x = MIN ((HOST_WIDE_INT)sizeof (buffer), pd.size); + size_t offset = MAX (0, pd.offset); + fprintf (stderr, "memset: %ld, offset: %ld\n", x, offset); /* Empty CONSTRUCTOR. */ memset (buffer + MAX (0, pd.offset), - 0, MIN ((HOST_WIDE_INT)sizeof (buffer), pd.size)); + 0, x); + } $ ./gcc/xgcc -Bgcc /tmp/ice.ii -c -O3 memset: 64, offset: 8 during GIMPLE pass: fre ... So a nice example of stack corruption. Richi can you please prepare a patch for it?