(layout_record): Avoid overflow in const_size by adding into var_size instead.
authorRichard Stallman <rms@gnu.org>
Thu, 31 Dec 1992 08:33:11 +0000 (08:33 +0000)
committerRichard Stallman <rms@gnu.org>
Thu, 31 Dec 1992 08:33:11 +0000 (08:33 +0000)
From-SVN: r3007

gcc/stor-layout.c

index e280802..3d1ce08 100644 (file)
@@ -451,7 +451,10 @@ layout_record (rec)
           printed in finish_struct.  */
        if (dsize == 0)
          /* Do nothing.  */;
-       else if (TREE_CODE (dsize) == INTEGER_CST)
+       else if (TREE_CODE (dsize) == INTEGER_CST
+                && TREE_INT_CST_HIGH (dsize) == 0
+                && TREE_INT_CST_LOW (dsize) + const_size > const_size)
+         /* Use const_size if there's no overflow.  */
          const_size += TREE_INT_CST_LOW (dsize);
        else
          {