From: Eric Botcazou Date: Fri, 23 May 2008 16:38:27 +0000 (+0000) Subject: expr.c (highest_pow2_factor): New case. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a2acd8bf5587e847fad9dfe92113d9448f8552b6;p=gcc.git expr.c (highest_pow2_factor): New case. * expr.c (highest_pow2_factor) : New case. From-SVN: r135820 --- 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));