diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a475633..13ee5f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-10 Richard Sandiford <rsandifo@redhat.com> + + * tree.c (get_unwidened): Reorder conditions so that the null pointer + check is done first. + 2004-01-09 Eric Christopher <echristo@redhat.com> * toplev.c (rest_of_handle_cfg): Add reg_scan pass @@ -4123,10 +4123,10 @@ get_unwidened (tree op, tree for_type) The resulting extension to its nominal type (a fullword type) must fit the same conditions as for other extensions. */ - if (INT_CST_LT_UNSIGNED (TYPE_SIZE (type), TYPE_SIZE (TREE_TYPE (op))) + if (type != 0 + && INT_CST_LT_UNSIGNED (TYPE_SIZE (type), TYPE_SIZE (TREE_TYPE (op))) && (for_type || ! DECL_BIT_FIELD (TREE_OPERAND (op, 1))) - && (! uns || final_prec <= innerprec || unsignedp) - && type != 0) + && (! uns || final_prec <= innerprec || unsignedp)) { win = build (COMPONENT_REF, type, TREE_OPERAND (op, 0), TREE_OPERAND (op, 1)); |