http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45451
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #12 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-10-24 19:56:08 UTC --- (In reply to comment #4) > Ok, I could reduce this quite a bit: > allocate(acsr%irp(4)) > allocate(a,source=acsr) If one looks at the dump, one sees a similar problem to PR 43018. For the first allocate, one has: D.1530 = (void * restrict) __builtin_malloc (16); which makes sense: 4 * integer(4) = 16 byte. However, for the second allocate one sees: D.1532 = (void * restrict) __builtin_malloc (48); which might be OK. However, the following is definitely invalid - and causes here a segfault (void) __builtin_memcpy ((void *) a.$data, (void *) &acsr, 48);