------- Comment #19 from rguenth at gcc dot gnu dot org 2007-01-05 13:46 ------- So the proposed patch (for all branches) is:
Index: tree.c =================================================================== *** tree.c (revision 120477) --- tree.c (working copy) *************** get_narrower (tree op, int *unsignedp_pt *** 5485,5494 **** { if (first) uns = DECL_UNSIGNED (TREE_OPERAND (op, 1)); ! win = build3 (COMPONENT_REF, type, TREE_OPERAND (op, 0), ! TREE_OPERAND (op, 1), NULL_TREE); ! TREE_SIDE_EFFECTS (win) = TREE_SIDE_EFFECTS (op); ! TREE_THIS_VOLATILE (win) = TREE_THIS_VOLATILE (op); } } *unsignedp_ptr = uns; --- 5485,5491 ---- { if (first) uns = DECL_UNSIGNED (TREE_OPERAND (op, 1)); ! win = fold_convert (type, op); } } *unsignedp_ptr = uns; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27826