--- Comment #11 from rguenth at gcc dot gnu dot org 2007-08-22 08:08
---
Fixed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNE
--- Comment #10 from rguenth at gcc dot gnu dot org 2007-08-22 08:07
---
Subject: Bug 32563
Author: rguenth
Date: Wed Aug 22 08:07:11 2007
New Revision: 127689
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127689
Log:
2007-08-22 Richard Guenther <[EMAIL PROTECTED]>
--- Comment #9 from rguenth at gcc dot gnu dot org 2007-08-22 08:01 ---
Subject: Bug 32563
Author: rguenth
Date: Wed Aug 22 08:00:55 2007
New Revision: 127688
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127688
Log:
2007-08-22 Richard Guenther <[EMAIL PROTECTED]>
PR
--- Comment #8 from rguenth at gcc dot gnu dot org 2007-08-21 11:47 ---
Not true either. host_integerp returns false for sizetype -1.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
--- Comment #7 from rguenth at gcc dot gnu dot org 2007-08-21 10:11 ---
Well, not entirely true. The problem is that sizetype is sign extended, and
we convert from unsigned long to unsigned long sizetype, so the representation
changes which causes fit_double_type to say we overflowed.
--- Comment #6 from rguenth at gcc dot gnu dot org 2007-08-20 09:44 ---
Which is because...
TREE_OPERAND (pos, 1) = fold_build2 (PLUS_EXPR, itype,
fold_convert (itype,
TREE_OPERAND (pos, 1)),
--- Comment #5 from rguenth at gcc dot gnu dot org 2007-08-20 09:23 ---
offset is not host_integerp because it has the overflow flag set because
-1 in a.c[-1] has the overflow flag set.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
--- Comment #4 from pinskia at gcc dot gnu dot org 2007-08-20 08:38 ---
The difference comes from:
/* If OFFSET is constant, see if we can return the whole thing as a
constant bit position. Otherwise, split it up. */
if (host_integerp (offset, 0)
&& 0 != (tem = size_bino
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-08-20 08:35 ---
Hmm, the difference between +/- 1 is that get_inner_reference returns bitpos of
8 and offset of 0 for +1, while -1 it returns bitpos of 0 and offset of -1.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-08-20 08:12 ---
With - 1, we get:
(plus:DI (symbol_ref:DI ("a") [flags 0x1402] )
(const_int -1 [0x]))
While with +1, we get:
(const:SI (plus:SI (symbol_ref:SI ("a") [flags 0x1402] )
(const_int 1 [0x1])))
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-08-06 15:44 ---
Confirmed.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCON
--
mmitchel at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|4.2.1 |4.2.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
--
mmitchel at gcc dot gnu dot org changed:
What|Removed |Added
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
--
reichelt at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.2.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32563
14 matches
Mail list logo