http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47283
--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-01-17 18:12:53 UTC --- THe ICE happens because refs_may_alias_p_1 gets an ao_ref initialized from a MEM_REF of an ADDR_EXPR of a component_ref. get_ref_base_and_extent then removes the MEM_REF but the base it returns is a COMPONENT_REF which then confuses refs_may_alias_p_1. The reference is fetched from MEM_EXPR (mem) in ao_ref_from_mem. However, it should be noted that mem is (gdb) call debug_rtx (mem) (mem:SI (debug_implicit_ptr:SI D.58673) [0 D.58673.wd+0 S4 A32]) so perhaps some of the callers should ignore debug instructions or debug-whatever-the-above-is? I don't know which one that would be, the backtrace is (I added a few asserts to alias.c to produce it so the line numbers are a bit off): #0 fancy_abort (file=0x8aa5c84 "/home/mjambor/gcc/mine/gcc/alias.c", line=276, function=0x8aa62a2 "ao_ref_from_mem") at /home/mjambor/gcc/mine/gcc/diagnostic.c:893 #1 0x082e4432 in ao_ref_from_mem (ref=0xbfffe828, mem=0xb5941bac) at /home/mjambor/gcc/mine/gcc/alias.c:276 #2 0x082e4bc8 in rtx_refs_may_alias_p (x=0xb5caf7c8, mem=<value optimized out>, tbaa_p=0 '\000') at /home/mjambor/gcc/mine/gcc/alias.c:380 #3 0x082e50a3 in write_dependence_p (mem=0xb5941bac, x=0xb5caf7c8, writep=<value optimized out>) at /home/mjambor/gcc/mine/gcc/alias.c:2598 #4 0x08a003c9 in sched_analyze_1 (deps=<value optimized out>, x=<value optimized out>, insn=<value optimized out>) at /home/mjambor/gcc/mine/gcc/sched-deps.c:2321 #5 0x08a042ac in sched_analyze_insn (deps=<value optimized out>, x=0xb5da6054, insn=0xb633e678) at /home/mjambor/gcc/mine/gcc/sched-deps.c:2656 #6 0x08a05df3 in deps_analyze_insn (deps=0xbfffeae0, insn=0xb633e678) at /home/mjambor/gcc/mine/gcc/sched-deps.c:3259 #7 0x08a065b3 in sched_analyze (deps=0xbfffeae0, head=0xb633e678, tail=0xb623cc80) at /home/mjambor/gcc/mine/gcc/sched-deps.c:3407 #8 0x08573c3e in compute_block_dependences (bb=<value optimized out>) at /home/mjambor/gcc/mine/gcc/sched-rgn.c:2725 #9 sched_rgn_compute_dependencies (bb=<value optimized out>) at /home/mjambor/gcc/mine/gcc/sched-rgn.c:3162 #10 0x08576484 in schedule_region (rgn=<value optimized out>) at /home/mjambor/gcc/mine/gcc/sched-rgn.c:2937 #11 schedule_insns (rgn=<value optimized out>) at /home/mjambor/gcc/mine/gcc/sched-rgn.c:3321 #12 0x08576a8e in rest_of_handle_sched2 () at /home/mjambor/gcc/mine/gcc/sched-rgn.c:3542 #13 0x085193b9 in execute_one_pass (pass=0x8cfaa60) at /home/mjambor/gcc/mine/gcc/passes.c:1561