diff options
Diffstat (limited to 'lib/Sema/SemaTemplateDeduction.cpp')
| -rw-r--r-- | lib/Sema/SemaTemplateDeduction.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Sema/SemaTemplateDeduction.cpp b/lib/Sema/SemaTemplateDeduction.cpp index 3a0f2ff0004be..d09cf9933ecf4 100644 --- a/lib/Sema/SemaTemplateDeduction.cpp +++ b/lib/Sema/SemaTemplateDeduction.cpp @@ -502,6 +502,10 @@ DeduceTemplateArguments(Sema &S,                          SmallVectorImpl<DeducedTemplateArgument> &Deduced) {    assert(Arg.isCanonical() && "Argument type must be canonical"); +  // Treat an injected-class-name as its underlying template-id. +  if (auto *Injected = dyn_cast<InjectedClassNameType>(Arg)) +    Arg = Injected->getInjectedSpecializationType(); +    // Check whether the template argument is a dependent template-id.    if (const TemplateSpecializationType *SpecArg          = dyn_cast<TemplateSpecializationType>(Arg)) {  | 
