https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87814
Bug ID: 87814 Summary: [9 Regression] ICE in in tsubst_copy, at cp/pt.c:15962 with range-v3 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: Casey at Carter dot net Target Milestone: --- Created attachment 44932 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44932&action=edit Preprocessed repro This program (preprocessed repro attached as repro.i.gz): #include <range/v3/iterator_range.hpp> #include <range/v3/view/join.hpp> #include <range/v3/view/transform.hpp> int main() { using namespace ranges; auto f = [](int) { return iterator_range<int*>(); }; join_view<transform_view<int(&)[42], decltype(f)>> rng; (void) rng.begin(); } ICEs in tsubst_copy while instantiating a variadic inherited constructor template that performs a "double" pack expansion, defined around line 43341 in the repro.