[Bug c++/92948] New: internal compiler error: in tsubst_copy, at cp/pt.c:15788
piotrsiupa at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Dec 15 20:48:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92948
Bug ID: 92948
Summary: internal compiler error: in tsubst_copy, at
cp/pt.c:15788
Product: gcc
Version: 9.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: piotrsiupa at gmail dot com
Target Milestone: ---
Created attachment 47500
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47500&action=edit
Minimal and complete example
There is a bug in the experimental feature "non-type template parameters of
class type" in c++2a.
class Aaa
{
public:
constexpr Aaa(const int) {}
};
template<Aaa AAA>
class Bbb_
{
public:
using ZZZ = unsigned;
};
template<Aaa AAA>
using Bbb = Bbb_<AAA>;
template<int XXX, typename YYY = typename Bbb<XXX>::ZZZ>
int foo()
{
return 0;
}
The error is:
./crash-the-compiler.cpp: In substitution of 'template<Aaa AAA> using Bbb =
Bbb_<((const Aaa)AAA)> [with Aaa AAA = ((Aaa*)(void)0)->Aaa::Aaa(XXX)]':
./crash-the-compiler.cpp:17:50: required from here
./crash-the-compiler.cpp:15:18: internal compiler error: in tsubst_copy, at
cp/pt.c:15788
15 | using Bbb = Bbb_<AAA>;
| ^~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
The bug seems to be pretty consistent on different versions of GCC.
I've found it in 9.2.0 but I can reproduce it in 9.1.0 and every 10.0.0 version
that I've found on https://godbolt.org/.
Even avr-g++ has the same exact problem.
More information about the Gcc-bugs
mailing list