diff options
Diffstat (limited to 'clang/lib/Index/IndexingContext.cpp')
| -rw-r--r-- | clang/lib/Index/IndexingContext.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Index/IndexingContext.cpp b/clang/lib/Index/IndexingContext.cpp index 21869d88a57..e623a495b47 100644 --- a/clang/lib/Index/IndexingContext.cpp +++ b/clang/lib/Index/IndexingContext.cpp @@ -130,9 +130,10 @@ bool IndexingContext::isTemplateImplicitInstantiation(const Decl *D) { if (const ClassTemplateSpecializationDecl * SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { TKind = SD->getSpecializationKind(); - } - if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { + } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { TKind = FD->getTemplateSpecializationKind(); + } else if (auto *VD = dyn_cast<VarDecl>(D)) { + TKind = VD->getTemplateSpecializationKind(); } switch (TKind) { case TSK_Undeclared: @@ -164,9 +165,10 @@ static const Decl *adjustTemplateImplicitInstantiation(const Decl *D) { if (const ClassTemplateSpecializationDecl * SD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { return SD->getTemplateInstantiationPattern(); - } - if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { + } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) { return FD->getTemplateInstantiationPattern(); + } else if (auto *VD = dyn_cast<VarDecl>(D)) { + return VD->getTemplateInstantiationPattern(); } return nullptr; } |

