http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53706
Bug #: 53706 Summary: [4.8 Regression] [ia64]: Bootstrap failure due to "Invalid write of size 8 at 0xBDC35E: variable_htab_free (var-tracking.c:1418) Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: ubiz...@gmail.com Recent 4.8 regression on ia64. The bootstrap fail with: *** glibc detected *** /home/uros/gcc-build/prev-gcc/cc1plus: corrupted double-linked list: 0x60000000027ec0d0 *** ======= Backtrace: ========= /lib/libc.so.6.1(+0xd7800)[0x200000000021f800] /lib/libc.so.6.1(+0xd81f0)[0x20000000002201f0] /lib/libc.so.6.1(+0xdb5e0)[0x20000000002235e0] /lib/libc.so.6.1(cfree-0x1cfed0)[0x200000000022be10] /home/uros/gcc-build/prev-gcc/cc1plus(htab_delete+0x20000000014501a0)[0x400000000184be90] /home/uros/gcc-build/prev-gcc/cc1plus[0x40000000014063a0] /home/uros/gcc-build/prev-gcc/cc1plus(_Z22variable_tracking_mainv+0x2000000001012b50)[0x400000000140c530] /home/uros/gcc-build/prev-gcc/cc1plus[0x400000000145f840] /home/uros/gcc-build/prev-gcc/cc1plus[0x4000000000d72d10] /home/uros/gcc-build/prev-gcc/cc1plus(_Z16execute_one_passP8opt_pass+0x20000000008a3860)[0x4000000000c9f560] /home/uros/gcc-build/prev-gcc/cc1plus(_Z17execute_pass_listP8opt_pass+0x20000000008a4c90)[0x4000000000ca0310] /home/uros/gcc-build/prev-gcc/cc1plus(_Z17execute_pass_listP8opt_pass+0x20000000008a4ce0)[0x4000000000ca0360] This corrupted double linked list problem can be exposed with a cross to ia64-unknown-linux-gnu under valgrind, with attached gimplify.ii: $ valgrind ~/gcc-build-ia64/gcc/cc1plus -O2 -g -fno-common -fno-exceptions -fno-rtti gimplify.ii ... ==2911== Invalid write of size 8 ==2911== at 0xBDC35E: variable_htab_free (var-tracking.c:1418) ==2911== by 0xDA819A: htab_delete (hashtab.c:430) ==2911== by 0xBE93EA: vt_emit_notes (var-tracking.c:9132) ==2911== by 0xBE9631: variable_tracking_main (var-tracking.c:9875) ==2911== by 0xC06995: ia64_reorg (ia64.c:9834) ==2911== by 0x9923F9: rest_of_handle_machine_reorg (reorg.c:4151) ==2911== by 0x945C26: execute_one_pass (passes.c:2164) ==2911== by 0x945FD4: execute_pass_list (passes.c:2219) ==2911== by 0x945FE6: execute_pass_list (passes.c:2220) ==2911== by 0x945FE6: execute_pass_list (passes.c:2220) ==2911== by 0x745047: expand_function (cgraphunit.c:1615) ==2911== by 0x746936: compile (cgraphunit.c:1720) ==2911== Address 0xf16ea18 is 40 bytes inside a block of size 2,568 free'd ==2911== at 0x4A079AE: free (vg_replace_malloc.c:427) ==2911== by 0x6DA9F7: empty_alloc_pool (alloc-pool.c:210) ==2911== by 0x6DAA68: free_alloc_pool (alloc-pool.c:230) ==2911== by 0xBE93D3: vt_emit_notes (var-tracking.c:9130) ==2911== by 0xBE9631: variable_tracking_main (var-tracking.c:9875) ==2911== by 0xC06995: ia64_reorg (ia64.c:9834) ==2911== by 0x9923F9: rest_of_handle_machine_reorg (reorg.c:4151) ==2911== by 0x945C26: execute_one_pass (passes.c:2164) ==2911== by 0x945FD4: execute_pass_list (passes.c:2219) ==2911== by 0x945FE6: execute_pass_list (passes.c:2220) ==2911== by 0x945FE6: execute_pass_list (passes.c:2220) ==2911== by 0x745047: expand_function (cgraphunit.c:1615)