aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorCharles Hannum <mycroft@gnu.org>1992-07-08 23:16:28 +0000
committerCharles Hannum <mycroft@gnu.org>1992-07-08 23:16:28 +0000
commitd964285ca2090dbdc538fcf16f0a42da36f89d0f (patch)
tree4159247e6f99be93cc97e735973b2c90e364cd0f /gcc/tree.c
parenta98145268923c10efe11471304463023b276ef41 (diff)
downloadgcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.zip
gcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.tar.gz
gcc-d964285ca2090dbdc538fcf16f0a42da36f89d0f.tar.bz2
*** empty log message ***
From-SVN: r1533
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index bbdffeb..c90bd4e 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -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)