[Bug c++/72752] New: internal compiler error: in retrieve_specialization
mikeus at hotmail dot ru
gcc-bugzilla@gcc.gnu.org
Fri Jul 29 21:31:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72752
Bug ID: 72752
Summary: internal compiler error: in retrieve_specialization
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mikeus at hotmail dot ru
Target Milestone: ---
The following code generates an ice:
----- 8< ---------- 8< ---------- 8< -----
typedef void (*foo_t)();
void test(foo_t)
{}
template< typename >
struct A
{
template< typename = void > static void foo();
void bar()
{
test(foo);
}
template< typename >
void baz()
{
test(foo);
}
};
template< typename _T_ >
template< typename >
void A< _T_ >::foo()
{}
----- >8 ---------- >8 ---------- >8 -----
Version 5.3.0 compiles the above code successfully.
This is possibly related with bug #66564.
The following code generates an ice for both versions:
----- 8< ---------- 8< ---------- 8< -----
template< typename >
struct Outer
{
template< typename >
struct Inner;
};
template<>
template< typename _T_ >
class Outer< _T_ >::Inner< _T_ >
{};
template struct Outer< int >::Inner< int >;
----- >8 ---------- >8 ---------- >8 -----
More information about the Gcc-bugs
mailing list