https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61853
--- Comment #12 from John David Anglin <danglin at gcc dot gnu.org> --- I have a patch to pa_function_value that avoids the issue but I tend to think there is a bug in expand. This code typedef struct { double x; } sd_t; sd_t foo1 (double d) { sd_t s; s.x = d; return s; } results in the following gimple foo1 (double d) { struct sd_t D.1360; ;; basic block 2, loop depth 0 ;; pred: ENTRY MEM[(struct *)&D.1360] = d_2(D); return D.1360; ;; succ: EXIT } This gimple seems similar to that in comment #10 but it doesn't trigger the ICE.