--- Comment #11 from patchapp at dberlin dot org 2006-04-04 08:15 ---
Subject: Bug number PR26763
A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00126.html
--
--- Comment #7 from patchapp at dberlin dot org 2006-04-03 16:45 ---
Subject: Bug number PR26763
A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00082.html
--
--- Comment #8 from rakdver at gcc dot gnu dot org 2006-04-03 16:52 ---
(In reply to comment #6)
I believe c-common.c:pointer_int_sum is wrong in relying on pointer overflow
during conversion of the integer offset to an unsigned pointer. I'm sending
a patch that fixes this for
--- Comment #9 from rguenther at suse dot de 2006-04-03 16:59 ---
Subject: Re: [4.1 Regression] wrong final value
of induction variable calculated
On Mon, 3 Apr 2006, rakdver at gcc dot gnu dot org wrote:
(In reply to comment #6)
I believe c-common.c:pointer_int_sum is wrong in
--- Comment #10 from rakdver at atrey dot karlin dot mff dot cuni dot cz
2006-04-03 17:22 ---
Subject: Re: [4.1 Regression] wrong final value of induction variable
calculated
(In reply to comment #6)
I believe c-common.c:pointer_int_sum is wrong in relying on pointer
--- Comment #6 from rguenth at gcc dot gnu dot org 2006-03-31 21:12 ---
I believe c-common.c:pointer_int_sum is wrong in relying on pointer overflow
during conversion of the integer offset to an unsigned pointer. I'm sending
a patch that fixes this for comments.
--
--- Comment #4 from rakdver at gcc dot gnu dot org 2006-03-28 12:08 ---
With this testcase, problem reproduces both in 4.1 and in mainline:
int try (int *a)
{
return a + -1 a;
}
int main(void)
{
int bla[100];
if (try (bla + 50))
abort ();
return 0;
}
--
--- Comment #5 from rguenth at gcc dot gnu dot org 2006-03-28 13:33 ---
We had this some time ago, but the discussion stopped at the point where people
said that pointers do not wrap. I believe that a + -1 is done using unsigned
arithmetic, so this may be the bug. I also know where
--
rakdver at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |rakdver at gcc dot gnu dot
|dot org
--- Comment #3 from rakdver at gcc dot gnu dot org 2006-03-27 22:33 ---
(gdb) call debug_generic_stmt (ret)
startD.1278_2 + -3B startD.1278_2 + 396B;
(gdb) call debug_generic_stmt (fold (ret))
1
I guess the reasoning of fold is: it is pointer arithmetics, so it
does not wrap. (-3B)
--- Comment #2 from rguenth at gcc dot gnu dot org 2006-03-25 22:14 ---
Zdenek, can you have a look?
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #1 from rguenth at gcc dot gnu dot org 2006-03-20 10:15 ---
Confirmed. -fno-tree-loop-optimize makes it work.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
12 matches
Mail list logo