+2017-05-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * pt.c (is_auto_or_concept): Remove.
+ (type_uses_auto_or_concept): Remove, unused.
+ (find_parameter_packs_r, extract_autos_r, is_auto_r): Adjust.
+ * parser.c (tree_type_is_auto_or_concept): Remove, unused.
+ * cp-tree.h (is_auto_or_concept): Remove.
+
2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
PR c++/80038
extern tree convert_generic_types_to_packs (tree, int, int);
extern tree splice_late_return_type (tree, tree);
extern bool is_auto (const_tree);
-extern bool is_auto_or_concept (const_tree);
extern tree process_template_parm (tree, location_t, tree,
bool, bool);
extern tree end_template_parm_list (tree);
return get_identifier (buf);
}
-/* Predicate that behaves as is_auto_or_concept but matches the parent
- node of the generic type rather than the generic type itself. This
- allows for type transformation in add_implicit_template_parms. */
-
-static inline bool
-tree_type_is_auto_or_concept (const_tree t)
-{
- return TREE_TYPE (t) && is_auto_or_concept (TREE_TYPE (t));
-}
-
/* Add an implicit template type parameter to the CURRENT_TEMPLATE_PARMS
(creating a new template parameter list if necessary). Returns the newly
created template type parm. */
parameter pack (14.6.3), or the type-specifier-seq of a type-id that
is a pack expansion, the invented template parameter is a template
parameter pack. */
- if (ppd->type_pack_expansion_p && is_auto_or_concept (t))
+ if (ppd->type_pack_expansion_p && is_auto (t))
TEMPLATE_TYPE_PARAMETER_PACK (t) = true;
if (TEMPLATE_TYPE_PARAMETER_PACK (t))
parameter_pack_p = true;
extract_autos_r (tree t, void *data)
{
hash_table<auto_hash> &hash = *(hash_table<auto_hash>*)data;
- if (is_auto_or_concept (t))
+ if (is_auto (t))
{
/* All the autos were built with index 0; fix that up now. */
tree *p = hash.find_slot (t, INSERT);
int
is_auto_r (tree tp, void */*data*/)
{
- return is_auto_or_concept (tp);
+ return is_auto (tp);
}
/* Returns the TEMPLATE_TYPE_PARM in TYPE representing `auto' iff TYPE contains
return find_type_usage (type, is_auto);
}
-/* Returns true iff TYPE is a TEMPLATE_TYPE_PARM representing 'auto',
- 'decltype(auto)' or a concept. */
-
-bool
-is_auto_or_concept (const_tree type)
-{
- return is_auto (type); // or concept
-}
-
-/* Returns the TEMPLATE_TYPE_PARM in TYPE representing a generic type (`auto' or
- a concept identifier) iff TYPE contains a use of a generic type. Returns
- NULL_TREE otherwise. */
-
-tree
-type_uses_auto_or_concept (tree type)
-{
- return find_type_usage (type, is_auto_or_concept);
-}
-
-
/* For a given template T, return the vector of typedefs referenced
in T for which access check is needed at T instantiation time.
T is either a FUNCTION_DECL or a RECORD_TYPE.