[PATCH] D50713: [AST] Pack the unsigned of SubstTemplateTypeParmPackType into Type
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 15 06:23:35 PDT 2018
erichkeane added a comment.
In https://reviews.llvm.org/D50713#1200564, @riccibruno wrote:
> The thing is that I have no idea what is the minimum number
> of bits required. It was originally an unsigned but I suspect that
> 32 bits are not needed. Looking at [implimits] I see
>
> Template arguments in a template declaration [1 024].
> Recursively nested template instantiations, including substitution during template argument deduc-
> tion (17.8.2) [1 024].
>
>
> But 1024 seems to be too small and easily exceeded by a doing a bit
> of template meta-programming.
I suspect a minor rephrase of this comment would be more than sufficient for me:
"This field corresponds to the number of template arguments, which is expected to be at least 1024 according to [implimits]. However, as this limit is somewhat easy to hit with template metaprogramming we'd prefer to keep it as large as possible. At the moment it has been left as a non-bitfield since this type safely fits in 64 bits as an unsigned, so there is no reason to introduce the performance impact of a bitfield."
I'd suspect you/someone will bikeshed that, but I think it gets the point across that I want to make sure is there.
Repository:
rC Clang
https://reviews.llvm.org/D50713
More information about the cfe-commits
mailing list