This is the mail archive of the gcc-patches@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]

C++ PATCH for c++/73456 (concepts ICE with constrained parameter pack)


In trying to decide if the constraints on the partial specialization
subsume those on the primary template, we consider whether any of the
constraints on the primary template imply the type constraint typename
list<Seqs...>.  We don't have any matching constraints on the primary
template, so we look to see if there are any non-atomic constraints
that we might be able to decompose in order to produce a match.  This
function doesn't know how to handle the pack expansion
Sequence<Seqs>... and so it crashes.

A pack expansion isn't really atomic, but it also won't decompose any
further, so treating it as non-atomic here leads to an infinite loop;
treating it as atomic, as 6.1 did, fixes the testcase.

Tested x86_64-pc-linux-gnu, applying to trunk and 6.

Attachment: 73456.diff
Description: Text document


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