------- Comment #9 from rguenth at gcc dot gnu dot org 2006-03-07 11:02 -------
Pointed-to sets for pointers in main
ptr_8, points-to vars: { BF_current }
ptr_3, points-to vars: { BF_current }
ptr_9, points-to vars: { BF_current }
D.1543_15, is dereferenced, points-to anything
D.1544_16, points-to vars: { BF_current }
is wrong because of:
handle_ptr_arith (struct constraint_expr lhs, tree expr)
{
tree op0, op1;
struct constraint_expr base, offset;
if (TREE_CODE (expr) != PLUS_EXPR)
return false;
and
(gdb) call debug_tree(expr)
<minus_expr 0x40194360
type <pointer_type 0x402260b8
type <integer_type 0x4021df74 BF_word sizes-gimplified public unsigned
SI
size <integer_cst 0x4018d3f0 constant invariant 32>
unit size <integer_cst 0x4018d180 constant invariant 4>
align 32 symtab 0 alias set -1 precision 32 min <integer_cst
0x4018d468 0> max <integer_cst 0x4018d450 4294967295>
pointer_to_this <pointer_type 0x402260b8>>
sizes-gimplified unsigned SI size <integer_cst 0x4018d3f0 32> unit size
<integer_cst 0x4018d180 4>
align 32 symtab 0 alias set -1>
arg 0 <ssa_name 0x40228e38 type <pointer_type 0x402260b8>
visited var <var_decl 0x40199210 ptr> def_stmt <modify_expr 0x40194264>
version 9
ptr-info 0x4021f740>
arg 1 <integer_cst 0x402271c8 type <pointer_type 0x402260b8> constant
invariant 8>>
I have a fix.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26587