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

            Bug ID: 60328
           Summary: [4.8/4.9 Regression] [c++11] ICE/Rejection with
                    specialization in variadic template
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reagentoo at gmail dot com

The following valid code snippet (compiled with "-std=c++11") rejected in GCC
4.9.0 (20130909) and triggers an ICE in GCC 4.8.2:

================================================
template <class _T, class... _Rest>
struct Foo
{
    template <class _TT, class... _RR>
    using Bar = Foo<_TT, _RR...>;

    using Normal = Foo<_Rest...>;
    using Fail = Bar<_Rest...>;
};
================================================
GCC 4.8.2 output:
internal compiler error: Segmentation fault
     using Fail = Bar<_Rest...>;
                              ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.gentoo.org/> for instructions.
================================================
GCC 4.9.0 output:
8 : error: pack expansion argument for non-pack parameter ‘_TT’ of alias
template ‘template template using Bar = Foo<_TT, _RR ...>’
using Fail = Bar<_Rest...>;
^

Reply via email to