------- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-04-23 12:30 ------- // Confirmed on amd64 too, smaller testcase (compile with -O2):
void abort (void); char q; void *a[2]; void foo (char *p) { int i; for (i = 0; i < 2; i++) a[i] += p - &q; } int main (void) { int i; foo (&q); for (i = 0; i < 2; i ++) if (a[i]) abort (); return 0; } -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|c |tree-optimization Ever Confirmed| |1 GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | GCC target triplet|i686-pc-linux-gnu | Keywords| |wrong-code Known to fail| |4.0.0 Known to work| |3.4.4 Priority|P2 |P1 Last reconfirmed|0000-00-00 00:00:00 |2005-04-23 12:30:26 date| | Summary|miscompiled pointer |[4.0 regression] miscompiled |subtraction broke Linux |pointer subtraction broke |kernel |Linux kernel Target Milestone|--- |4.0.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21173