diff options
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index eabaa4a..46490ca 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4063,7 +4063,7 @@ optimize_bit_field_compare (location_t loc, enum tree_code code, || !known_size_p (plbitsize) || !plbitsize.is_constant (&lbitsize) || !plbitpos.is_constant (&lbitpos) - || lbitsize == GET_MODE_BITSIZE (lmode) + || known_eq (lbitsize, GET_MODE_BITSIZE (lmode)) || offset != 0 || TREE_CODE (linner) == PLACEHOLDER_EXPR || lvolatilep) @@ -5190,8 +5190,9 @@ merge_ranges (int *pin_p, tree *plow, tree *phigh, int in0_p, tree low0, switch (TREE_CODE (TREE_TYPE (low0))) { case ENUMERAL_TYPE: - if (TYPE_PRECISION (TREE_TYPE (low0)) - != GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (low0)))) + if (maybe_ne (TYPE_PRECISION (TREE_TYPE (low0)), + GET_MODE_BITSIZE + (TYPE_MODE (TREE_TYPE (low0))))) break; /* FALLTHROUGH */ case INTEGER_TYPE: @@ -5213,8 +5214,9 @@ merge_ranges (int *pin_p, tree *plow, tree *phigh, int in0_p, tree low0, switch (TREE_CODE (TREE_TYPE (high1))) { case ENUMERAL_TYPE: - if (TYPE_PRECISION (TREE_TYPE (high1)) - != GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (high1)))) + if (maybe_ne (TYPE_PRECISION (TREE_TYPE (high1)), + GET_MODE_BITSIZE + (TYPE_MODE (TREE_TYPE (high1))))) break; /* FALLTHROUGH */ case INTEGER_TYPE: |