[Concepts] Add missing null check to transformConstructor

Caused bug 44671 when transforming a constructor with a type-constraint with no explicit template args.
This commit is contained in:
Saar Raz 2020-01-27 00:14:43 +02:00
parent 0e0c65264a
commit a8d096aff6
1 changed files with 4 additions and 2 deletions

View File

@ -2047,12 +2047,14 @@ private:
if (const auto *TC = TTP->getTypeConstraint()) {
TemplateArgumentListInfo TransformedArgs;
const auto *ArgsAsWritten = TC->getTemplateArgsAsWritten();
if (SemaRef.Subst(ArgsAsWritten->getTemplateArgs(),
if (!ArgsAsWritten ||
SemaRef.Subst(ArgsAsWritten->getTemplateArgs(),
ArgsAsWritten->NumTemplateArgs, TransformedArgs,
Args))
SemaRef.AttachTypeConstraint(
TC->getNestedNameSpecifierLoc(), TC->getConceptNameInfo(),
TC->getNamedConcept(), &TransformedArgs, NewTTP,
TC->getNamedConcept(), ArgsAsWritten ? &TransformedArgs : nullptr,
NewTTP,
NewTTP->isParameterPack()
? cast<CXXFoldExpr>(TC->getImmediatelyDeclaredConstraint())
->getEllipsisLoc()