On Tue, Mar 20, 2018 at 4:15 PM, Alexandre Oliva <aol...@redhat.com> wrote:
> On Mar 20, 2018, Jason Merrill <ja...@redhat.com> wrote:
>
>> On Sat, Mar 17, 2018 at 8:13 AM, Alexandre Oliva <aol...@redhat.com> wrote:
>>> As we go through each of the template parameters, substituting it with
>>> corresponding template arguments, an incorrect argument list might
>>> cause us to index argument vectors past their length (or fail in the
>>> preceding tree checks).  Avoid such dereferences and instead issue an
>>> error (if requested) if we find the argument index to be past the
>>> parameter vector length.
>
>> Any time we hit this abort, it indicates a bug in earlier processing,
>> so that we're looking up a template parameter in an argument list for
>> a different template.
>
> That doesn't seem to be the case here.  The argument list given for U is
> <T>, as in the testcase, the problem is that U is misdeclared as taking
> <int,int> <typename> (two template levels for a single template).
>
> Should we aim at rejecting the declaration of U?

Yes.

Jason

Reply via email to