------- Additional Comments From steven at gcc dot gnu dot org  2005-01-27 
21:26 -------
The lang hook thinks that with the 'const' the types of 'dest' and 'orig' 
in may_propagate_copy are not the same. 
 
(gdb) 
2820          else if (!may_propagate_copy (op, val)) 
4: debug_generic_stmt (stmt) = #   VUSE <TMT.0D.1464_10>; 
D.1457_8 = *lengthp2D.1453_7; 
 
void 
(gdb) p may_propagate_copy (op, val) 
$17 = 0 '\0' 
 
In may_propagate_copy : 
(gdb) next 
111           if (mt_dest && mt_orig && mt_dest != mt_orig) 
(gdb) 
113           else if (!lang_hooks.types_compatible_p (type_d, type_o)) 
(gdb) 
156     } 
(gdb) p debug_generic_expr(dest) 
lengthp2D.1453_7 
$18 = void 
(gdb) p debug_generic_expr(orig) 
lengthpD.1449_3 
(gdb) p lang_hooks.types_compatible_p (type_d, type_o) 
$20 = 0 
(gdb) p debug_tree (type_d) 
 <pointer_type 0x2a95a301a0 
    type <integer_type 0x2a95a300d0 unsigned int readonly unsigned SI 
        size <integer_cst 0x2a95890a80 constant invariant 32> 
        unit size <integer_cst 0x2a958905a0 constant invariant 4> 
        align 32 symtab 0 alias set -1 precision 32 min <integer_cst 
0x2a95890b70 0> max <integer_cst 0x2a95890b40 4294967295> 
        pointer_to_this <pointer_type 0x2a95a301a0>> 
    unsigned DI 
    size <integer_cst 0x2a95890c30 type <integer_type 0x2a958965b0 
bit_size_type> constant invariant 64> 
    unit size <integer_cst 0x2a95890c60 type <integer_type 0x2a958964e0 long 
unsigned int> constant invariant 8> 
    align 64 symtab 0 alias set -1> 
$21 = void 
(gdb) p debug_tree (type_o) 
 <pointer_type 0x2a95988a90 
    type <integer_type 0x2a95896b60 unsigned int public unsigned SI 
        size <integer_cst 0x2a95890a80 constant invariant 32> 
        unit size <integer_cst 0x2a958905a0 constant invariant 4> 
        align 32 symtab 0 alias set -1 precision 32 min <integer_cst 
0x2a95890b70 0> max <integer_cst 0x2a95890b40 4294967295> 
        pointer_to_this <pointer_type 0x2a95988a90>> 
    unsigned DI 
    size <integer_cst 0x2a95890c30 type <integer_type 0x2a958965b0 
bit_size_type> constant invariant 64> 
    unit size <integer_cst 0x2a95890c60 type <integer_type 0x2a958964e0 long 
unsigned int> constant invariant 8> 
    align 64 symtab 0 alias set -1> 
$22 = void 
 
 
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19659

Reply via email to