This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/58004] New: Internal compiler error in unify_one_argument, at cp/pt.c:15445


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58004

            Bug ID: 58004
           Summary: Internal compiler error in unify_one_argument, at
                    cp/pt.c:15445
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lin90162 at gmail dot com

Code:

// hoge.cpp
template< class T, T... V >
struct L{};

template< class T, class U = L<T> >
struct X;

template< char... V >
struct X< char, L<V...> > {};


int main()
{
    typename X<char>::type a; // instantiate specialized template class
    return 0;
}
// end of hoge.cpp

Error message:
hoge.cpp: In function 'int main()':
hoge.cpp:13:21: internal compiler error: in unify_one_argument, at
cp/pt.c:15445
     typename X<char>::type a; // specialized template instantiation
                     ^

hoge.cpp:13:21: internal compiler error: Abort trap: 6
g++-4.8: internal compiler error: Abort trap: 6 (program cc1plus)
[1]    37562 abort      g++-4.8 -std=c++11 -Wall -Wextra -O2 hoge.cpp


GCC should occur 'invalid template type argument' error because first template
argument of L should be a type but first template argument of L<V...> is a
value.
This internal compiler error seems to occur only in template specialization.

I tested this code in gcc 4.7.3, 4.8.1 and 4.9.0 20130726 and all of them fail.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]