This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/61539] [4.8/4.9/4.10 Regression] ICE: in unify_one_argument, at cp/pt.c:15465
- From: "trippels at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 17 Jun 2014 19:52:12 +0000
- Subject: [Bug c++/61539] [4.8/4.9/4.10 Regression] ICE: in unify_one_argument, at cp/pt.c:15465
- Auto-submitted: auto-generated
- References: <bug-61539-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61539
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Another smaller testcase (clang rejects this):
markus@x4 tmp % cat foo.ii
template <class> class A;
template <> class A<char>
{
virtual void m_fn1 (int &, const int &) const;
};
template <typename, int> class B;
template <class, class = int> class C : A<char>
{
public:
C (void *) {}
void m_fn1 (int &, const int &) const;
};
C<B<double, 0> > *a = new C<B<double, 0>>(0);
template <class... T> void validate (B<T...> *);
template <class T, class charT>
void C<T, charT>::m_fn1 (int &, const int &) const
{
validate ((T *)0);
}
markus@x4 tmp % g++ -c -std=c++11 foo.ii
foo.ii: In substitution of âtemplate<class ... T> void validate(B<T ...>*)
[with T = <missing>]â:
foo.ii:18:19: required from âvoid C< <template-parameter-1-1>,
<template-parameter-1-2> >::m_fn1(int&, const int&) const [with
<template-parameter-1-1> = B<double, 0>; <template-parameter-1-2> = int]â
foo.ii:19:1: required from here
foo.ii:18:19: internal compiler error: in unify_one_argument, at cp/pt.c:16504
PR60942 looks like a dup.