------- Comment #2 from kkojima at gcc dot gnu dot org 2009-07-19 04:53 ------- A bit smaller test case:
typedef struct str { short x, y;} S; static short bar (short ch, short sl, short sr, short tl, short tr) { return 0; } void foo (short ch, S *pi, short nc, S *po) { short clo, chi, lo, hi; po->x = bar (ch, clo, chi, pi[lo].x, pi[hi].x); po->y = bar (ch, clo, chi, pi[lo].y, pi[hi].y); } -- Here is a backtrace with a compiler configured with --enable-checking=df: #0 fancy_abort (file=0x85db620 "../../LOCAL/trunk/gcc/df-scan.c", line=4361, function=0x85dbcf2 "df_refs_verify") at ../../LOCAL/trunk/gcc/diagnostic.c:730 #1 0x08161cfc in df_refs_verify (new_rec=0x8790988, old_rec=0x878e09c, abort_if_fail=1 '\001') at ../../LOCAL/trunk/gcc/df-scan.c:4361 #2 0x08166a7a in df_insn_refs_verify (collection_rec=0xbffff1bc, bb=<value optimized out>, insn=<value optimized out>, abort_if_fail=1 '\001') at ../../LOCAL/trunk/gcc/df-scan.c:4451 #3 0x08166ca5 in df_bb_verify (bb=0xb7f90180) at ../../LOCAL/trunk/gcc/df-scan.c:4485 #4 0x08166f18 in df_scan_verify () at ../../LOCAL/trunk/gcc/df-scan.c:4617 #5 0x08157b5b in df_verify () at ../../LOCAL/trunk/gcc/df-core.c:1558 #6 0x08158f36 in df_analyze () at ../../LOCAL/trunk/gcc/df-core.c:1152 #7 0x08526ef1 in fwprop_init () at ../../LOCAL/trunk/gcc/fwprop.c:269 #8 0x0852721a in fwprop () at ../../LOCAL/trunk/gcc/fwprop.c:1323 #9 0x082805f1 in execute_one_pass (pass=0x86ab5e0) The previous pass of fwprop is cse in the failing case. -- kkojima at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|middle-end |rtl-optimization Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Known to fail| |4.5.0 Known to work| |4.4.1 Priority|P3 |P4 Last reconfirmed|0000-00-00 00:00:00 |2009-07-19 04:53:47 date| | Summary|ICE in df_refs_verify, at |[4.5 Regression] ICE in |df-scan.c:4361 |df_refs_verify, at df- | |scan.c:4361 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40797