https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79571
Bug ID: 79571 Summary: [5/6/7 Regression] ICE in Max. number of generated reload insns per insn is achieved (90) Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ra Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Starting from 4.8.x we ICE: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/sh/torture/pr65505.c -O -mno-sse /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/sh/torture/pr65505.c: In function ‘fdget_raw’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/sh/torture/pr65505.c:62:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (struct fd){(struct file *)(fd & ~3),fd & 3}; ^ /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/sh/torture/pr65505.c: In function ‘path_init’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/sh/torture/pr65505.c:121:1: internal compiler error: Max. number of generated reload insns per insn is achieved (90) } ^ 0x92fe86 lra_constraints(bool) ../../gcc/lra-constraints.c:4656 0x91f1f4 lra(_IO_FILE*) ../../gcc/lra.c:2397 0x8ddcdf do_reload ../../gcc/ira.c:5400 0x8ddcdf execute ../../gcc/ira.c:5584 A reduced test-case: $ cat ice.c struct a { int b; int *c } h; struct d { struct a e }; struct fd { struct d *d } i; g; j () { unsigned a = g; i = (struct fd){a & 3}; struct fd f = i; h = f.d->e; }