gcc/: Merge definitions of array_type_nelts_top
There were two identical definitions, and none of them are available where they are needed for implementing a number-of-elements-of operator. Merge them, and provide the single definition in gcc/tree.{h,cc}, where it's available for that operator, which will be added in a following commit. gcc/ChangeLog: * tree.h (array_type_nelts_top) * tree.cc (array_type_nelts_top): Define function (moved from gcc/cp/). gcc/cp/ChangeLog: * cp-tree.h (array_type_nelts_top) * tree.cc (array_type_nelts_top): Remove function (move to gcc/). gcc/rust/ChangeLog: * backend/rust-tree.h (array_type_nelts_top) * backend/rust-tree.cc (array_type_nelts_top): Remove function. Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
parent
1157765994
commit
c886eb3421
6 changed files with 14 additions and 29 deletions
|
@ -8121,7 +8121,6 @@ extern tree build_exception_variant (tree, tree);
|
|||
extern void fixup_deferred_exception_variants (tree, tree);
|
||||
extern tree bind_template_template_parm (tree, tree);
|
||||
extern tree array_type_nelts_total (tree);
|
||||
extern tree array_type_nelts_top (tree);
|
||||
extern bool array_of_unknown_bound_p (const_tree);
|
||||
extern tree break_out_target_exprs (tree, bool = false);
|
||||
extern tree build_ctor_subob_ref (tree, tree, tree);
|
||||
|
|
|
@ -3076,19 +3076,6 @@ cxx_print_statistics (void)
|
|||
depth_reached);
|
||||
}
|
||||
|
||||
/* Return, as an INTEGER_CST node, the number of elements for TYPE
|
||||
(which is an ARRAY_TYPE). This counts only elements of the top
|
||||
array. */
|
||||
|
||||
tree
|
||||
array_type_nelts_top (tree type)
|
||||
{
|
||||
return fold_build2_loc (input_location,
|
||||
PLUS_EXPR, sizetype,
|
||||
array_type_nelts_minus_one (type),
|
||||
size_one_node);
|
||||
}
|
||||
|
||||
/* Return, as an INTEGER_CST node, the number of elements for TYPE
|
||||
(which is an ARRAY_TYPE). This one is a recursive count of all
|
||||
ARRAY_TYPEs that are clumped together. */
|
||||
|
|
|
@ -859,19 +859,6 @@ is_empty_class (tree type)
|
|||
return CLASSTYPE_EMPTY_P (type);
|
||||
}
|
||||
|
||||
// forked from gcc/cp/tree.cc array_type_nelts_top
|
||||
|
||||
/* Return, as an INTEGER_CST node, the number of elements for TYPE
|
||||
(which is an ARRAY_TYPE). This counts only elements of the top
|
||||
array. */
|
||||
|
||||
tree
|
||||
array_type_nelts_top (tree type)
|
||||
{
|
||||
return fold_build2_loc (input_location, PLUS_EXPR, sizetype,
|
||||
array_type_nelts_minus_one (type), size_one_node);
|
||||
}
|
||||
|
||||
// forked from gcc/cp/tree.cc builtin_valid_in_constant_expr_p
|
||||
|
||||
/* Test whether DECL is a builtin that may appear in a
|
||||
|
|
|
@ -2993,8 +2993,6 @@ extern location_t rs_expr_location (const_tree);
|
|||
extern int
|
||||
is_empty_class (tree type);
|
||||
|
||||
extern tree array_type_nelts_top (tree);
|
||||
|
||||
extern bool
|
||||
is_really_empty_class (tree, bool);
|
||||
|
||||
|
|
13
gcc/tree.cc
13
gcc/tree.cc
|
@ -3732,6 +3732,19 @@ array_type_nelts_minus_one (const_tree type)
|
|||
? max
|
||||
: fold_build2 (MINUS_EXPR, TREE_TYPE (max), max, min));
|
||||
}
|
||||
|
||||
/* Return, as an INTEGER_CST node, the number of elements for TYPE
|
||||
(which is an ARRAY_TYPE). This counts only elements of the top
|
||||
array. */
|
||||
|
||||
tree
|
||||
array_type_nelts_top (tree type)
|
||||
{
|
||||
return fold_build2_loc (input_location,
|
||||
PLUS_EXPR, sizetype,
|
||||
array_type_nelts_minus_one (type),
|
||||
size_one_node);
|
||||
}
|
||||
|
||||
/* If arg is static -- a reference to an object in static storage -- then
|
||||
return the object. This is not the same as the C meaning of `static'.
|
||||
|
|
|
@ -4930,6 +4930,7 @@ extern tree build_method_type (tree, tree);
|
|||
extern tree build_offset_type (tree, tree);
|
||||
extern tree build_complex_type (tree, bool named = false);
|
||||
extern tree array_type_nelts_minus_one (const_tree);
|
||||
extern tree array_type_nelts_top (tree);
|
||||
|
||||
extern tree value_member (tree, tree);
|
||||
extern tree purpose_member (const_tree, tree);
|
||||
|
|
Loading…
Add table
Reference in a new issue