From: Richard Guenther Date: Wed, 28 Mar 2012 15:04:23 +0000 (+0000) Subject: typeck2.c (process_init_constructor_array): Use the proper type for computing the... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=32e8bfc3f649f51969aa3ca63df162df25f5b9c8;p=gcc.git typeck2.c (process_init_constructor_array): Use the proper type for computing the array length. 2012-03-28 Richard Guenther * typeck2.c (process_init_constructor_array): Use the proper type for computing the array length. From-SVN: r185919 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0d9be4fa49d..0c96065f9df 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-03-28 Richard Guenther + + * typeck2.c (process_init_constructor_array): Use the proper + type for computing the array length. + 2012-03-27 Meador Inge PR c++/52672 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 80a1d0462ce..f9b525cba40 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -1054,9 +1054,14 @@ process_init_constructor_array (tree type, tree init, { tree domain = TYPE_DOMAIN (type); if (domain) - len = (TREE_INT_CST_LOW (TYPE_MAX_VALUE (domain)) - - TREE_INT_CST_LOW (TYPE_MIN_VALUE (domain)) - + 1); + len = double_int_ext + (double_int_add + (double_int_sub + (tree_to_double_int (TYPE_MAX_VALUE (domain)), + tree_to_double_int (TYPE_MIN_VALUE (domain))), + double_int_one), + TYPE_PRECISION (TREE_TYPE (domain)), + TYPE_UNSIGNED (TREE_TYPE (domain))).low; else unbounded = true; /* Take as many as there are. */ }