tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE.

gcc/
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
	TYPE_MAX_VALUE.

       gcc/c-family/
	* c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.

       gcc/c/
	* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.

       gcc/cp/ 
	* cp-array-notation.c (build_array_notation_ref): Use
	TYPE_{MIN,MAX}_VALUE.

       gcc/fortran/
	* trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE.

From-SVN: r250309
This commit is contained in:
Nathan Sidwell 2017-07-18 13:22:50 +00:00 committed by Nathan Sidwell
parent b34a929aa3
commit ff22eb1256
10 changed files with 39 additions and 19 deletions

View file

@ -1,3 +1,8 @@
2017-07-18 Nathan Sidwell <nathan@acm.org>
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
TYPE_MAX_VALUE.
2017-07-18 Bin Cheng <bin.cheng@arm.com>
PR target/81408

View file

@ -1,3 +1,7 @@
2017-07-18 Nathan Sidwell <nathan@acm.org>
* c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE.
2017-07-14 David Malcolm <dmalcolm@redhat.com>
* c-common.c (try_to_locate_new_include_insertion_point): New

View file

@ -1799,12 +1799,12 @@ warn_for_memset (location_t loc, tree arg0, tree arg2,
tree domain = TYPE_DOMAIN (type);
if (!integer_onep (TYPE_SIZE_UNIT (elt_type))
&& domain != NULL_TREE
&& TYPE_MAXVAL (domain)
&& TYPE_MINVAL (domain)
&& integer_zerop (TYPE_MINVAL (domain))
&& TYPE_MAX_VALUE (domain)
&& TYPE_MIN_VALUE (domain)
&& integer_zerop (TYPE_MIN_VALUE (domain))
&& integer_onep (fold_build2 (MINUS_EXPR, domain,
arg2,
TYPE_MAXVAL (domain))))
TYPE_MAX_VALUE (domain))))
warning_at (loc, OPT_Wmemset_elt_size,
"%<memset%> used with length equal to "
"number of elements without multiplication "

View file

@ -1,3 +1,7 @@
2017-07-18 Nathan Sidwell <nathan@acm.org>
* c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE.
2017-07-14 David Malcolm <dmalcolm@redhat.com>
* c-decl.c (implicitly_declare): When suggesting a missing

View file

@ -18238,18 +18238,18 @@ c_parser_array_notation (location_t loc, c_parser *parser, tree initial_index,
return error_mark_node;
}
start_index = TYPE_MINVAL (array_type_domain);
start_index = TYPE_MIN_VALUE (array_type_domain);
start_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node,
start_index);
if (!TYPE_MAXVAL (array_type_domain)
|| !TREE_CONSTANT (TYPE_MAXVAL (array_type_domain)))
if (!TYPE_MAX_VALUE (array_type_domain)
|| !TREE_CONSTANT (TYPE_MAX_VALUE (array_type_domain)))
{
error_at (loc, "start-index and length fields necessary for "
"using array notations in variable-length arrays");
c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL);
return error_mark_node;
}
end_index = TYPE_MAXVAL (array_type_domain);
end_index = TYPE_MAX_VALUE (array_type_domain);
end_index = fold_build2 (PLUS_EXPR, TREE_TYPE (end_index),
end_index, integer_one_node);
end_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, end_index);

View file

@ -1,5 +1,8 @@
2017-07-18 Nathan Sidwell <nathan@acm.org>
* cp-array-notation.c (build_array_notation_ref): Use
TYPE_{MIN,MAX}_VALUE.
* class.c (classtype_has_move_assign_or_move_ctor): Declare.
(add_implicitly_declared_members): Use it.
(type_has_move_constructor, type_has_move_assign): Merge into ...

View file

@ -1375,8 +1375,8 @@ build_array_notation_ref (location_t loc, tree array, tree start, tree length,
"using array notation with array of unknown bound");
return error_mark_node;
}
start = cp_fold_convert (ptrdiff_type_node, TYPE_MINVAL (domain));
length = size_binop (PLUS_EXPR, TYPE_MAXVAL (domain), size_one_node);
start = cp_fold_convert (ptrdiff_type_node, TYPE_MIN_VALUE (domain));
length = size_binop (PLUS_EXPR, TYPE_MAX_VALUE (domain), size_one_node);
length = cp_fold_convert (ptrdiff_type_node, length);
}

View file

@ -1,3 +1,7 @@
2017-07-18 Nathan Sidwell <nathan@acm.org>
* trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE.
2017-07-09 Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/81341

View file

@ -334,15 +334,15 @@ gfc_build_array_ref (tree base, tree offset, tree decl, tree vptr)
/* Use pointer arithmetic for deferred character length array
references. */
if (type && TREE_CODE (type) == ARRAY_TYPE
&& TYPE_MAXVAL (TYPE_DOMAIN (type)) != NULL_TREE
&& (VAR_P (TYPE_MAXVAL (TYPE_DOMAIN (type)))
|| TREE_CODE (TYPE_MAXVAL (TYPE_DOMAIN (type))) == INDIRECT_REF)
&& TYPE_MAX_VALUE (TYPE_DOMAIN (type)) != NULL_TREE
&& (VAR_P (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))
|| TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (type))) == INDIRECT_REF)
&& decl
&& (TREE_CODE (TYPE_MAXVAL (TYPE_DOMAIN (type))) == INDIRECT_REF
&& (TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (type))) == INDIRECT_REF
|| TREE_CODE (decl) == FUNCTION_DECL
|| DECL_CONTEXT (TYPE_MAXVAL (TYPE_DOMAIN (type)))
== DECL_CONTEXT (decl)))
span = TYPE_MAXVAL (TYPE_DOMAIN (type));
|| (DECL_CONTEXT (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))
== DECL_CONTEXT (decl))))
span = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
else
span = NULL_TREE;

View file

@ -1824,7 +1824,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop,
/* Figure out whether nit + 1 overflows. */
if (TREE_CODE (nit) == INTEGER_CST)
{
if (!tree_int_cst_equal (nit, TYPE_MAXVAL (nit_type)))
if (!tree_int_cst_equal (nit, TYPE_MAX_VALUE (nit_type)))
{
alt_bound = fold_build2_loc (UNKNOWN_LOCATION, PLUS_EXPR, nit_type,
nit, build_one_cst (nit_type));
@ -1869,7 +1869,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop,
return false;
/* Check if nit + 1 overflows. */
widest_int type_max = wi::to_widest (TYPE_MAXVAL (nit_type));
widest_int type_max = wi::to_widest (TYPE_MAX_VALUE (nit_type));
if (nit_max >= type_max)
return false;