diff options
Diffstat (limited to 'clang/lib/AST/ExprClassification.cpp')
| -rw-r--r-- | clang/lib/AST/ExprClassification.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/AST/ExprClassification.cpp b/clang/lib/AST/ExprClassification.cpp index 31aa734ffedb..0286c730ce4e 100644 --- a/clang/lib/AST/ExprClassification.cpp +++ b/clang/lib/AST/ExprClassification.cpp @@ -453,12 +453,14 @@ static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D) { bool islvalue; if (const auto *NTTParm = dyn_cast<NonTypeTemplateParmDecl>(D)) - islvalue = NTTParm->getType()->isReferenceType(); + islvalue = NTTParm->getType()->isReferenceType() || + NTTParm->getType()->isRecordType(); else islvalue = isa<VarDecl>(D) || isa<FieldDecl>(D) || isa<IndirectFieldDecl>(D) || isa<BindingDecl>(D) || isa<MSGuidDecl>(D) || + isa<TemplateParamObjectDecl>(D) || (Ctx.getLangOpts().CPlusPlus && (isa<FunctionDecl>(D) || isa<MSPropertyDecl>(D) || isa<FunctionTemplateDecl>(D))); |
