https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64098
Bug ID: 64098 Summary: ICE isl_ctx.c:172: isl_ctx freed, but some objects still referenced Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org CC: mircea.namolaru at inria dot fr #include <stdio.h> #include <endian.h> #include <inttypes.h> uint16_t dhcp_packet_checksum(void * restrict buf, int len) { uint32_t sum; uint16_t * restrict check; int i; uint8_t * restrict odd; sum = 0; check = buf; for (i = 0; i < len / 2 ; i++) sum += check[i]; if (len & 0x01) { odd = buf; sum += odd[len - 1]; } while (sum >> 16) sum = (sum & 0xffff) + (sum >> 16); return ~sum; } int main(void) { const uint8_t buf[20] = { 0x45, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff }; return dhcp_packet_checksum(&buf, 20) == be16toh(0x78ae); } gcc-5 -Wall $(rpm --eval %optflags) -floop-unroll-and-jam test.c isl_ctx.c:172: isl_ctx freed, but some objects still reference it chk.c: In function ‘dhcp_packet_checksum’: chk.c:5:10: internal compiler error: Abortado uint16_t dhcp_packet_checksum(void * restrict buf, int len) { ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://bugs.opensuse.org/> for instructions.