diff options
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 7f386439acc..1bb3d820c8c 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6599,7 +6599,7 @@ highest_pow2_factor (const_tree exp) } break; - case NON_LVALUE_EXPR: case NOP_EXPR: case CONVERT_EXPR: + case NOP_EXPR: case CONVERT_EXPR: case SAVE_EXPR: return highest_pow2_factor (TREE_OPERAND (exp, 0)); @@ -7121,9 +7121,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, } ignore = (target == const0_rtx - || ((code == NON_LVALUE_EXPR || code == NOP_EXPR - || code == CONVERT_EXPR || code == COND_EXPR - || code == VIEW_CONVERT_EXPR) + || ((code == NOP_EXPR || code == CONVERT_EXPR + || code == COND_EXPR || code == VIEW_CONVERT_EXPR) && TREE_CODE (type) == VOID_TYPE)); /* An operation in what may be a bit-field type needs the @@ -8018,7 +8017,6 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, return expand_call (exp, target, ignore); case PAREN_EXPR: - case NON_LVALUE_EXPR: case NOP_EXPR: case CONVERT_EXPR: if (TREE_OPERAND (exp, 0) == error_mark_node) @@ -9411,8 +9409,7 @@ static int is_aligning_offset (const_tree offset, const_tree exp) { /* Strip off any conversions. */ - while (TREE_CODE (offset) == NON_LVALUE_EXPR - || TREE_CODE (offset) == NOP_EXPR + while (TREE_CODE (offset) == NOP_EXPR || TREE_CODE (offset) == CONVERT_EXPR) offset = TREE_OPERAND (offset, 0); @@ -9428,8 +9425,7 @@ is_aligning_offset (const_tree offset, const_tree exp) /* Look at the first operand of BIT_AND_EXPR and strip any conversion. It must be NEGATE_EXPR. Then strip any more conversions. */ offset = TREE_OPERAND (offset, 0); - while (TREE_CODE (offset) == NON_LVALUE_EXPR - || TREE_CODE (offset) == NOP_EXPR + while (TREE_CODE (offset) == NOP_EXPR || TREE_CODE (offset) == CONVERT_EXPR) offset = TREE_OPERAND (offset, 0); @@ -9437,8 +9433,7 @@ is_aligning_offset (const_tree offset, const_tree exp) return 0; offset = TREE_OPERAND (offset, 0); - while (TREE_CODE (offset) == NON_LVALUE_EXPR - || TREE_CODE (offset) == NOP_EXPR + while (TREE_CODE (offset) == NOP_EXPR || TREE_CODE (offset) == CONVERT_EXPR) offset = TREE_OPERAND (offset, 0); |