diff options
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 3938978dfd5..fc44217252a 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -993,7 +993,11 @@ bool Sema::CheckTemplateArgumentList(TemplateDecl *Template,                                       Template, &Converted[0],                                        Converted.size(),                                       SourceRange(TemplateLoc, RAngleLoc)); -          ArgType = InstantiateType(ArgType, &Converted[0], Converted.size(), + +          TemplateArgumentList TemplateArgs(Context, &Converted[0], +                                            Converted.size(),  +                                            /*CopyArgs=*/false); +          ArgType = InstantiateType(ArgType, TemplateArgs,                                      TTP->getDefaultArgumentLoc(),                                      TTP->getDeclName());          } @@ -1061,8 +1065,10 @@ bool Sema::CheckTemplateArgumentList(TemplateDecl *Template,                                     Converted.size(),                                     SourceRange(TemplateLoc, RAngleLoc)); -        NTTPType = InstantiateType(NTTPType,  -                                   &Converted[0], Converted.size(), +        TemplateArgumentList TemplateArgs(Context, &Converted[0], +                                          Converted.size(),  +                                          /*CopyArgs=*/false); +        NTTPType = InstantiateType(NTTPType, TemplateArgs,                                     NTTP->getLocation(),                                     NTTP->getDeclName());          // If that worked, check the non-type template parameter type | 

