------- 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

Reply via email to