This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[C++, concepts] Two slightly obscure pt.c functions?
- From: Paolo Carlini <paolo dot carlini at oracle dot com>
- To: "gcc at gnu dot org" <gcc at gnu dot org>
- Cc: Jason Merrill <jason at redhat dot com>, Adam Butcher <adam at jessamine dot co dot uk>
- Date: Wed, 26 Apr 2017 12:32:39 +0200
- Subject: [C++, concepts] Two slightly obscure pt.c functions?
- Authentication-results: sourceware.org; auth=none
Hi,
in 2013 (2013-09-16) Adam added two slightly obscure functions and I
can't find much around in terms of rationale, etc:
/* 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);
}
The latter seems completely unused (it's meant for debugging purposes?);
the former evidently simply forwards to is_auto, and we end up in the
front-end with uses of both, which in fact are equivalent, which seems
weird: IMHO, if they are actually equivalent in our implementation we
should clearly explain that in the comment and have only one. Or what?
Thanks for any feedback,
Paolo.