From a2acd8bf5587e847fad9dfe92113d9448f8552b6 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 23 May 2008 16:38:27 +0000 Subject: [PATCH] expr.c (highest_pow2_factor): New case. * expr.c (highest_pow2_factor) : New case. From-SVN: r135820 --- gcc/ChangeLog | 4 ++++ gcc/expr.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cadf9d13705..25e09df9add 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-05-23 Eric Botcazou + + * expr.c (highest_pow2_factor) : New case. + 2008-05-23 Steven Munroe * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full diff --git a/gcc/expr.c b/gcc/expr.c index 0a0f401e9c3..e2693d84740 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6599,6 +6599,13 @@ highest_pow2_factor (const_tree exp) } break; + case BIT_AND_EXPR: + /* The highest power of two of a bit-and expression is the maximum of + that of its operands. We typically get here for a complex LHS and + a constant negative power of two on the RHS to force an explicit + alignment, so don't bother looking at the LHS. */ + return highest_pow2_factor (TREE_OPERAND (exp, 1)); + CASE_CONVERT: case SAVE_EXPR: return highest_pow2_factor (TREE_OPERAND (exp, 0)); -- 2.30.2