[libcxx-commits] [PATCH] D96523: [libc++] Rewrite the tuple constructors to be strictly Standards conforming
Jordan Rupprecht via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Apr 29 15:47:55 PDT 2021
rupprecht added a comment.
We're seeing some issues with this patch manifested as complicated tuple expressions that hit compiler limits with template depth. A bit of a synthetic example, but here it is: https://godbolt.org/z/TzvzWhYYs
template <size_t... I>
void MakeFoo(std::index_sequence<I...>) {
auto tup = std::make_tuple(I...);
(void)tup;
}
void Broken() {
// At trunk, when this is >= 508, we see:
// fatal error: recursive template instantiation exceeded maximum depth of
// 1024
auto seq = std::make_index_sequence<508>{};
MakeFoo(seq);
}
Prior to this patch, the breaking point is at 1021. Interestingly though, this didn't reproduce in the latest clang/llvm 12 release on godbolt. I did a second bisection to D50106 <https://reviews.llvm.org/D50106> as the point where `std::make_index_sequence<1021>{}` newly fails.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96523/new/
https://reviews.llvm.org/D96523
More information about the libcxx-commits
mailing list