Commit ff22eb12 by Nathan Sidwell Committed by Nathan Sidwell

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
parent b34a929a
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> 2017-07-18 Bin Cheng <bin.cheng@arm.com>
PR target/81408 PR target/81408
......
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> 2017-07-14 David Malcolm <dmalcolm@redhat.com>
* c-common.c (try_to_locate_new_include_insertion_point): New * c-common.c (try_to_locate_new_include_insertion_point): New
......
...@@ -1799,12 +1799,12 @@ warn_for_memset (location_t loc, tree arg0, tree arg2, ...@@ -1799,12 +1799,12 @@ warn_for_memset (location_t loc, tree arg0, tree arg2,
tree domain = TYPE_DOMAIN (type); tree domain = TYPE_DOMAIN (type);
if (!integer_onep (TYPE_SIZE_UNIT (elt_type)) if (!integer_onep (TYPE_SIZE_UNIT (elt_type))
&& domain != NULL_TREE && domain != NULL_TREE
&& TYPE_MAXVAL (domain) && TYPE_MAX_VALUE (domain)
&& TYPE_MINVAL (domain) && TYPE_MIN_VALUE (domain)
&& integer_zerop (TYPE_MINVAL (domain)) && integer_zerop (TYPE_MIN_VALUE (domain))
&& integer_onep (fold_build2 (MINUS_EXPR, domain, && integer_onep (fold_build2 (MINUS_EXPR, domain,
arg2, arg2,
TYPE_MAXVAL (domain)))) TYPE_MAX_VALUE (domain))))
warning_at (loc, OPT_Wmemset_elt_size, warning_at (loc, OPT_Wmemset_elt_size,
"%<memset%> used with length equal to " "%<memset%> used with length equal to "
"number of elements without multiplication " "number of elements without multiplication "
......
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> 2017-07-14 David Malcolm <dmalcolm@redhat.com>
* c-decl.c (implicitly_declare): When suggesting a missing * c-decl.c (implicitly_declare): When suggesting a missing
......
...@@ -18238,18 +18238,18 @@ c_parser_array_notation (location_t loc, c_parser *parser, tree initial_index, ...@@ -18238,18 +18238,18 @@ c_parser_array_notation (location_t loc, c_parser *parser, tree initial_index,
return error_mark_node; 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 = fold_build1 (CONVERT_EXPR, ptrdiff_type_node,
start_index); start_index);
if (!TYPE_MAXVAL (array_type_domain) if (!TYPE_MAX_VALUE (array_type_domain)
|| !TREE_CONSTANT (TYPE_MAXVAL (array_type_domain))) || !TREE_CONSTANT (TYPE_MAX_VALUE (array_type_domain)))
{ {
error_at (loc, "start-index and length fields necessary for " error_at (loc, "start-index and length fields necessary for "
"using array notations in variable-length arrays"); "using array notations in variable-length arrays");
c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL); c_parser_skip_until_found (parser, CPP_CLOSE_SQUARE, NULL);
return error_mark_node; 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 = fold_build2 (PLUS_EXPR, TREE_TYPE (end_index),
end_index, integer_one_node); end_index, integer_one_node);
end_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, end_index); end_index = fold_build1 (CONVERT_EXPR, ptrdiff_type_node, end_index);
......
2017-07-18 Nathan Sidwell <nathan@acm.org> 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. * class.c (classtype_has_move_assign_or_move_ctor): Declare.
(add_implicitly_declared_members): Use it. (add_implicitly_declared_members): Use it.
(type_has_move_constructor, type_has_move_assign): Merge into ... (type_has_move_constructor, type_has_move_assign): Merge into ...
......
...@@ -1375,8 +1375,8 @@ build_array_notation_ref (location_t loc, tree array, tree start, tree length, ...@@ -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"); "using array notation with array of unknown bound");
return error_mark_node; return error_mark_node;
} }
start = cp_fold_convert (ptrdiff_type_node, TYPE_MINVAL (domain)); start = cp_fold_convert (ptrdiff_type_node, TYPE_MIN_VALUE (domain));
length = size_binop (PLUS_EXPR, TYPE_MAXVAL (domain), size_one_node); length = size_binop (PLUS_EXPR, TYPE_MAX_VALUE (domain), size_one_node);
length = cp_fold_convert (ptrdiff_type_node, length); length = cp_fold_convert (ptrdiff_type_node, length);
} }
......
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> 2017-07-09 Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/81341 PR fortran/81341
......
...@@ -334,15 +334,15 @@ gfc_build_array_ref (tree base, tree offset, tree decl, tree vptr) ...@@ -334,15 +334,15 @@ gfc_build_array_ref (tree base, tree offset, tree decl, tree vptr)
/* Use pointer arithmetic for deferred character length array /* Use pointer arithmetic for deferred character length array
references. */ references. */
if (type && TREE_CODE (type) == ARRAY_TYPE if (type && TREE_CODE (type) == ARRAY_TYPE
&& TYPE_MAXVAL (TYPE_DOMAIN (type)) != NULL_TREE && TYPE_MAX_VALUE (TYPE_DOMAIN (type)) != NULL_TREE
&& (VAR_P (TYPE_MAXVAL (TYPE_DOMAIN (type))) && (VAR_P (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))
|| TREE_CODE (TYPE_MAXVAL (TYPE_DOMAIN (type))) == INDIRECT_REF) || TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (type))) == INDIRECT_REF)
&& decl && 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 || TREE_CODE (decl) == FUNCTION_DECL
|| DECL_CONTEXT (TYPE_MAXVAL (TYPE_DOMAIN (type))) || (DECL_CONTEXT (TYPE_MAX_VALUE (TYPE_DOMAIN (type)))
== DECL_CONTEXT (decl))) == DECL_CONTEXT (decl))))
span = TYPE_MAXVAL (TYPE_DOMAIN (type)); span = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
else else
span = NULL_TREE; span = NULL_TREE;
......
...@@ -1824,7 +1824,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop, ...@@ -1824,7 +1824,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop,
/* Figure out whether nit + 1 overflows. */ /* Figure out whether nit + 1 overflows. */
if (TREE_CODE (nit) == INTEGER_CST) 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, alt_bound = fold_build2_loc (UNKNOWN_LOCATION, PLUS_EXPR, nit_type,
nit, build_one_cst (nit_type)); nit, build_one_cst (nit_type));
...@@ -1869,7 +1869,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop, ...@@ -1869,7 +1869,7 @@ try_transform_to_exit_first_loop_alt (struct loop *loop,
return false; return false;
/* Check if nit + 1 overflows. */ /* 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) if (nit_max >= type_max)
return false; return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment