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

Reply via email to