OSDN Git Service

2011-09-05 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2011 09:03:08 +0000 (09:03 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2011 09:03:08 +0000 (09:03 +0000)
* stor-layout.c (layout_type): Use size_binop for array size
calculations.

c-family/
* c-common.c (complete_array_type): Use ssize_int (-1) instead
of integer_minus_one_node for empty array upper bounds.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178526 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/stor-layout.c

index 5a9a339..ab05faa 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-05  Richard Guenther  <rguenther@suse.de>
+
+       * stor-layout.c (layout_type): Use size_binop for array size
+       calculations.
+
 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
        
        * config/avr/avr.h (progmem_section): Remove Declaration.
index 44eae08..95abde6 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-05  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.c (complete_array_type): Use ssize_int (-1) instead
+       of integer_minus_one_node for empty array upper bounds.
+
 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
 
        * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as
index 4cace8d..9c42d59 100644 (file)
@@ -8844,7 +8844,7 @@ complete_array_type (tree *ptype, tree initial_value, bool do_default)
            {
              if (pedantic)
                failure = 3;
-             maxindex = integer_minus_one_node;
+             maxindex = ssize_int (-1);
            }
          else
            {
index f15da0c..359541e 100644 (file)
@@ -1959,16 +1959,15 @@ layout_type (tree type)
            if (integer_zerop (element_size))
              length = size_zero_node;
 
-           /* The computation should happen in the original type so
-              that (possible) negative values are handled appropriately.  */
+           /* The computation should happen in the original signedness so
+              that (possible) negative values are handled appropriately
+              when determining overflow.  */
            else
              length
                = fold_convert (sizetype,
-                               fold_build2 (PLUS_EXPR, TREE_TYPE (lb),
-                                            build_int_cst (TREE_TYPE (lb), 1),
-                                            fold_build2 (MINUS_EXPR,
-                                                         TREE_TYPE (lb),
-                                                         ub, lb)));
+                               size_binop (PLUS_EXPR,
+                                           build_int_cst (TREE_TYPE (lb), 1),
+                                           size_binop (MINUS_EXPR, ub, lb)));
 
            TYPE_SIZE (type) = size_binop (MULT_EXPR, element_size,
                                           fold_convert (bitsizetype,