diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fold-const.c | 24 |
2 files changed, 16 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68cb1c9..94d093a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com> + + Revert this change: + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. + Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk> * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 7d63ea8..dc9ca93 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -6034,20 +6034,16 @@ fold (expr) } /* If this is a comparison of a field, we may be able to simplify it. */ - { - tree xarg0 = arg0; - STRIP_NOPS (xarg0); - if ((TREE_CODE (xarg0) == COMPONENT_REF - || TREE_CODE (xarg0) == BIT_FIELD_REF) - && (code == EQ_EXPR || code == NE_EXPR) - /* Handle the constant case even without -O - to make sure the warnings are given. */ - && (optimize || TREE_CODE (arg1) == INTEGER_CST)) - { - t1 = optimize_bit_field_compare (code, type, xarg0, arg1); - return t1 ? t1 : t; - } - } + if ((TREE_CODE (arg0) == COMPONENT_REF + || TREE_CODE (arg0) == BIT_FIELD_REF) + && (code == EQ_EXPR || code == NE_EXPR) + /* Handle the constant case even without -O + to make sure the warnings are given. */ + && (optimize || TREE_CODE (arg1) == INTEGER_CST)) + { + t1 = optimize_bit_field_compare (code, type, arg0, arg1); + return t1 ? t1 : t; + } /* If this is a comparison of complex values and either or both sides are a COMPLEX_EXPR or COMPLEX_CST, it is best to split up the |