https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83287
Bug ID: 83287 Summary: ice in tsubst_copy, at cp/pt.c:14884 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- Created attachment 42793 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42793&action=edit gzipped C++ source code The attached C++ source code, with recent gcc trunk, does this: In file included from array_real.cpp:28: array_tlp.hpp: In instantiation of ‘void ArrayOperatorF() [with K = double; KK = double]’: array_real.cpp:45:35: required from here array_tlp.hpp:1760:27: internal compiler error: in tsubst_copy, at cp/pt.c:14884 0x7e5bf2 tsubst_copy ../../trunk/gcc/cp/pt.c:14884 0x7cc740 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bo ol) ../../trunk/gcc/cp/pt.c:18294 0x7cf287 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bo ol) ../../trunk/gcc/cp/pt.c:17929 0x7cc588 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bo ol) ../../trunk/gcc/cp/pt.c:17438 0x7cd121 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bo ol) This bug seems to have been around since before revision 248835. Here is a reduced piece of code which seems to demonstrate the problem: void a(); namespace { void a(); } template <class, class> b() { a } void c { b<double, double>() }