[Bug middle-end/31058] array overflow warning due to incorrect loop unrolling
mueller at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Mar 6 15:22:00 GMT 2007
------- Comment #1 from mueller at gcc dot gnu dot org 2007-03-06 15:22 -------
after prefetch-loop-arrays run, vrp2 looks like this:
<L81>:;
D.1885_87 = &r_4(D)->sig[i_13];
D.1886_88 = D.1885_87 + 160B;
__builtin_prefetch (D.1886_88, 1);
r_4(D)->sig[i_13] = 0;
i_8 = i_13 + 1;
i_26 = i_8;
r_4(D)->sig[i_26] = 0;
i_28 = i_26 + 1;
i_30 = i_28;
r_4(D)->sig[i_30] = 0;
i_32 = i_30 + 1;
i_34 = i_32;
r_4(D)->sig[i_34] = 0;
i_36 = i_34 + 1;
i_38 = i_36;
r_4(D)->sig[i_38] = 0;
i_40 = i_38 + 1;
i_42 = i_40;
r_4(D)->sig[i_42] = 0;
i_44 = i_42 + 1;
i_46 = i_44;
r_4(D)->sig[i_46] = 0;
i_48 = i_46 + 1;
i_50 = i_48;
r_4(D)->sig[i_50] = 0;
i_52 = i_50 + 1;
i_54 = i_52;
r_4(D)->sig[i_54] = 0;
i_56 = i_54 + 1;
i_58 = i_56;
r_4(D)->sig[i_58] = 0;
i_60 = i_58 + 1;
i_62 = i_60;
r_4(D)->sig[i_62] = 0;
i_64 = i_62 + 1;
i_66 = i_64;
r_4(D)->sig[i_66] = 0;
i_68 = i_66 + 1;
i_70 = i_68;
r_4(D)->sig[i_70] = 0;
i_72 = i_70 + 1;
i_74 = i_72;
r_4(D)->sig[i_74] = 0;
i_76 = i_74 + 1;
i_78 = i_76;
r_4(D)->sig[i_78] = 0;
[...]
and so on. since it definitely writes more than 5 ints, I don't see how it
should *not* overflow the array.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31058
More information about the Gcc-bugs
mailing list