re PR c/6643 (gcc fails in tree check for assignment to variable sized array)
authorJakub Jelinek <jakub@redhat.com>
Wed, 22 May 2002 21:06:16 +0000 (23:06 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 22 May 2002 21:06:16 +0000 (23:06 +0200)
PR c/6643
* emit-rtl.c (widen_memory_access): Only call compare_tree_int
if DECL_SIZE_UNIT is INTEGER_CST.

From-SVN: r53748

gcc/ChangeLog
gcc/emit-rtl.c

index f8ccdae5f0061d41876e23a332728022b30f140c..b2bcff0fbf68806f4b77a66da1fdbcff080243a3 100644 (file)
@@ -1,3 +1,9 @@
+2002-05-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/6643
+       * emit-rtl.c (widen_memory_access): Only call compare_tree_int
+       if DECL_SIZE_UNIT is INTEGER_CST.
+
 2002-05-22  Richard Henderson  <rth@redhat.com>
 
        * flow.c (life_analysis): Delete broken reg_label check.
index 2e86dff09a4bdbfd5f4bc9c4e014ce8e95d406be..963946a4ed868beed7c9e0b01169eb8a6a23ea5f 100644 (file)
@@ -2163,6 +2163,7 @@ widen_memory_access (memref, mode, offset)
       /* Similarly for the decl.  */
       else if (DECL_P (expr)
               && DECL_SIZE_UNIT (expr)
+              && TREE_CODE (DECL_SIZE_UNIT (expr)) == INTEGER_CST
               && compare_tree_int (DECL_SIZE_UNIT (expr), size) >= 0
               && (! memoffset || INTVAL (memoffset) >= 0))
        break;