This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[C++, concepts] Two slightly obscure pt.c functions?


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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]