fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend LOAD_EXTEND_OP...
authorJakub Jelinek <jakub@redhat.com>
Tue, 14 Dec 2004 17:59:36 +0000 (18:59 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 14 Dec 2004 17:59:36 +0000 (18:59 +0100)
* fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
LOAD_EXTEND_OP is not defined.
(fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.

From-SVN: r92150

gcc/ChangeLog
gcc/fold-const.c

index 07b52604ba05c6eee09ffa79554dff47c60cb75b..fc0e9b6c851a4e5618e70c45e24b47e120cc3eb1 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
+       LOAD_EXTEND_OP is not defined.
+       (fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.
+
 2004-12-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
 
        * tree.def, doc/c-tree.texi: Correctly document restrictions on the
index da7a284be49961afa09afbbcd6c280b5e11b4fd0..2fe0b7e7d2b56174c703171a40055a878b808293 100644 (file)
@@ -5876,7 +5876,8 @@ fold_single_bit_test (enum tree_code code, tree arg0, tree arg1,
         operations as unsigned.  If we must use the AND, we have a choice.
         Normally unsigned is faster, but for some machines signed is.  */
 #ifdef LOAD_EXTEND_OP
-      ops_unsigned = (LOAD_EXTEND_OP (operand_mode) == SIGN_EXTEND ? 0 : 1);
+      ops_unsigned = (LOAD_EXTEND_OP (operand_mode) == SIGN_EXTEND 
+                     && !flag_syntax_only) ? 0 : 1;
 #else
       ops_unsigned = 1;
 #endif
@@ -6404,10 +6405,11 @@ fold (tree expr)
              && ! VOID_TYPE_P (TREE_OPERAND (tem, 2))
              && (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (tem, 1), 0))
                  == TREE_TYPE (TREE_OPERAND (TREE_OPERAND (tem, 2), 0)))
-             && ! (INTEGRAL_TYPE_P (TREE_TYPE (tem))
-                   && (INTEGRAL_TYPE_P
-                       (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (tem, 1), 0))))
-                   && TYPE_PRECISION (TREE_TYPE (tem)) <= BITS_PER_WORD))
+             && (! (INTEGRAL_TYPE_P (TREE_TYPE (tem))
+                    && (INTEGRAL_TYPE_P
+                        (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (tem, 1), 0))))
+                    && TYPE_PRECISION (TREE_TYPE (tem)) <= BITS_PER_WORD)
+                 || flag_syntax_only))
            tem = build1 (code, type,
                          build3 (COND_EXPR,
                                  TREE_TYPE (TREE_OPERAND
@@ -6614,6 +6616,7 @@ fold (tree expr)
              change = (cst == 0);
 #ifdef LOAD_EXTEND_OP
              if (change
+                 && !flag_syntax_only
                  && (LOAD_EXTEND_OP (TYPE_MODE (TREE_TYPE (and0)))
                      == ZERO_EXTEND))
                {