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++ Patch] Remove is_auto_or_concept, etc (Was: Re: [C++, concepts] Two slightly obscure pt.c functions?)


Hi again,

On 26/04/2017 12:32, Paolo Carlini wrote:
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?

... replying to myself, in practice we could do the below, which certainly passes testing, and in fact now seems to me even more obvious than I thought a couple of days ago...

Thanks,
Paolo.

/////////////////////

Attachment: CL_CU2
Description: Text document

Attachment: patch_CU2
Description: Text document


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