[Bug tree-optimization/34769] [4.3 Regression] gcc.dg/vect/no-vfa-pr29145.c
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Jan 13 17:42:00 GMT 2008
------- Comment #5 from rguenth at gcc dot gnu dot org 2008-01-13 17:00 -------
We enter that function with:
{4294967288B, +, 4}_1
<polynomial_chrec 0x2acbda7bd500
type <pointer_type 0x2acbd9dd09c0
type <integer_type 0x2acbd9dc1540 int sizes-gimplified public SI
size <integer_cst 0x2acbd9db1ab0 constant invariant 32>
unit size <integer_cst 0x2acbd9db1720 constant invariant 4>
align 32 symtab 0 alias set 2 canonical type 0x2acbd9dc1540
precision 32 min <integer_cst 0x2acbd9db1a20 -2147483648> max <integer_cst
0x2acbd9db1a50 2147483647>
pointer_to_this <pointer_type 0x2acbd9dd09c0>>
sizes-gimplified public unsigned SI size <integer_cst 0x2acbd9db1ab0
32> unit size <integer_cst 0x2acbd9db1720 4>
align 32 symtab 0 alias set -1 canonical type 0x2acbd9dd09c0>
arg 0 <integer_cst 0x2acbd9dce510 type <integer_type 0x2acbd9dc1540 int>
constant invariant 1>
arg 1 <integer_cst 0x2acbda7bf4b0 type <pointer_type 0x2acbd9dd09c0>
constant invariant public overflow 4294967288> arg 2 <integer_cst
0x2acbd9db1720 4>>
where the HOST_WIDE_INT will be positive (it's not sign-extended).
For -m64 we instead get
{-8B, +, 4}_1
<polynomial_chrec 0x2b154a2925f0
type <pointer_type 0x2b15498a3b40
type <integer_type 0x2b1549894540 int sizes-gimplified public SI
size <integer_cst 0x2b1549884ab0 constant invariant 32>
unit size <integer_cst 0x2b1549884720 constant invariant 4>
align 32 symtab 0 alias set 2 canonical type 0x2b1549894540
precision 32 min <integer_cst 0x2b1549884a20 -2147483648> max <integer_cst
0x2b1549884a50 2147483647>
pointer_to_this <pointer_type 0x2b15498a3b40>>
sizes-gimplified public unsigned DI
size <integer_cst 0x2b1549884ba0 constant invariant 64>
unit size <integer_cst 0x2b1549884bd0 constant invariant 8>
align 64 symtab 0 alias set -1 canonical type 0x2b15498a3b40>
arg 0 <integer_cst 0x2b15498a1570 type <integer_type 0x2b1549894540 int>
constant invariant 1>
arg 1 <integer_cst 0x2b154a2948a0 type <pointer_type 0x2b15498a3b40>
constant invariant public overflow 18446744073709551608> arg 2 <integer_cst
0x2b1549884720 4>>
where the HOST_WIDE_INT will be negative.
For consistency you should always use sizetype variables for offsets, as
they are properly sign-extended. Using pointer types asks for trouble.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34769
More information about the Gcc-bugs
mailing list