diff options
author | Charles Hannum <mycroft@gnu.org> | 1992-07-08 23:16:28 +0000 |
---|---|---|
committer | Charles Hannum <mycroft@gnu.org> | 1992-07-08 23:16:28 +0000 |
commit | d964285ca2090dbdc538fcf16f0a42da36f89d0f (patch) | |
tree | 4159247e6f99be93cc97e735973b2c90e364cd0f /gcc | |
parent | a98145268923c10efe11471304463023b276ef41 (diff) | |
download | gcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.zip gcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.tar.gz gcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.tar.bz2 |
*** empty log message ***
From-SVN: r1533
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 7 | ||||
-rw-r--r-- | gcc/tree.c | 22 | ||||
-rw-r--r-- | gcc/varasm.c | 4 |
3 files changed, 12 insertions, 21 deletions
@@ -6546,11 +6546,8 @@ do_store_flag (exp, target, mode, only_cheap) if (operand_mode == BLKmode) return 0; - while (TREE_CODE (arg0) == NON_LVALUE_EXPR) - arg0 = TREE_OPERAND (arg0, 0); - - while (TREE_CODE (arg1) == NON_LVALUE_EXPR) - arg1 = TREE_OPERAND (arg1, 0); + STRIP_NOPS (arg0); + STRIP_NOPS (arg1); /* Get the rtx comparison code to use. We know that EXP is a comparison operation of some type. Some comparisons against 1 and -1 can be @@ -1217,8 +1217,7 @@ int integer_zerop (expr) tree expr; { - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); return (TREE_CODE (expr) == INTEGER_CST && TREE_INT_CST_LOW (expr) == 0 @@ -1231,8 +1230,7 @@ int integer_onep (expr) tree expr; { - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); return (TREE_CODE (expr) == INTEGER_CST && TREE_INT_CST_LOW (expr) == 1 @@ -1249,8 +1247,7 @@ integer_all_onesp (expr) register int prec; register int uns; - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); if (TREE_CODE (expr) != INTEGER_CST) return 0; @@ -1292,8 +1289,7 @@ integer_pow2p (expr) { HOST_WIDE_INT high, low; - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); if (TREE_CODE (expr) != INTEGER_CST) return 0; @@ -1314,8 +1310,7 @@ int real_zerop (expr) tree expr; { - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); return (TREE_CODE (expr) == REAL_CST && REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst0)); @@ -1327,8 +1322,7 @@ int real_onep (expr) tree expr; { - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); return (TREE_CODE (expr) == REAL_CST && REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst1)); @@ -1340,8 +1334,7 @@ int real_twop (expr) tree expr; { - while (TREE_CODE (expr) == NON_LVALUE_EXPR) - expr = TREE_OPERAND (expr, 0); + STRIP_NOPS (expr); return (TREE_CODE (expr) == REAL_CST && REAL_VALUES_EQUAL (TREE_REAL_CST (expr), dconst2)); @@ -1353,6 +1346,7 @@ int really_constant_p (exp) tree exp; { + /* This is not quite the same as STRIP_NOPS. It does more. */ while (TREE_CODE (exp) == NOP_EXPR || TREE_CODE (exp) == CONVERT_EXPR || TREE_CODE (exp) == NON_LVALUE_EXPR) diff --git a/gcc/varasm.c b/gcc/varasm.c index 38ce48f..69afc66 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -2678,8 +2678,8 @@ output_constructor (exp, size) field = TREE_PURPOSE (link); /* Eliminate the marker that makes a cast not be an lvalue. */ - if (val != 0 && TREE_CODE (val) == NON_LVALUE_EXPR) - val = TREE_OPERAND (val, 0); + if (val != 0) + STRIP_NOPS (val); if (field == 0 || !DECL_BIT_FIELD (field)) { |