[PATCH] D86936: [clang] Limit the maximum level of fold-expr expansion.

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 19 06:32:38 PDT 2020


erichkeane added a comment.

In D86936#2338664 <https://reviews.llvm.org/D86936#2338664>, @erichkeane wrote:

> Why did we select the 'bracket-depth' for this?  The documentation on that doesn't seem to be anything close to what this should be based on:
>
>   Sets the limit for nested parentheses, brackets, and braces to N in blocks, declarators, expressions, and struct or union declarations.
>
> The 256 default limit is REALLY small for a fold expression, particularly since the instantiation depth limit is 1024 by default.  I think this patch needs to be changed to use the InstantiationDepth instead.  @rjmccall, thoughts?

Even that limit (1024) seems like it is perhaps a little conservative. Apparently, this comes up in Boost Numerics, where they use a pack of size 1089 at one point that they use a '+' fold expression that this causes us to no longer be able to build.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86936/new/

https://reviews.llvm.org/D86936



More information about the cfe-commits mailing list