summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/AST/ASTContext.cpp10
-rw-r--r--clang/lib/Sema/SemaLambda.cpp12
2 files changed, 10 insertions, 12 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 8dd57f2bd28..a41b64ffcc8 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -10261,16 +10261,6 @@ ASTContext::getManglingNumberContext(const DeclContext *DC) {
return *MCtx;
}
-MangleNumberingContext &
-ASTContext::getManglingNumberContext(NeedExtraManglingDecl_t, const Decl *D) {
- assert(LangOpts.CPlusPlus); // We don't need mangling numbers for plain C.
- std::unique_ptr<MangleNumberingContext> &MCtx =
- ExtraMangleNumberingContexts[D];
- if (!MCtx)
- MCtx = createMangleNumberingContext();
- return *MCtx;
-}
-
std::unique_ptr<MangleNumberingContext>
ASTContext::createMangleNumberingContext() const {
return ABI->createMangleNumberingContext();
diff --git a/clang/lib/Sema/SemaLambda.cpp b/clang/lib/Sema/SemaLambda.cpp
index b05ed75e879..a76a840f26e 100644
--- a/clang/lib/Sema/SemaLambda.cpp
+++ b/clang/lib/Sema/SemaLambda.cpp
@@ -352,13 +352,21 @@ Sema::getCurrentMangleNumberContext(const DeclContext *DC,
// -- the initializers of inline variables
case VariableTemplate:
// -- the initializers of templated variables
- return &Context.getManglingNumberContext(ASTContext::NeedExtraManglingDecl,
- ManglingContextDecl);
+ return &ExprEvalContexts.back().getMangleNumberingContext(Context);
}
llvm_unreachable("unexpected context");
}
+MangleNumberingContext &
+Sema::ExpressionEvaluationContextRecord::getMangleNumberingContext(
+ ASTContext &Ctx) {
+ assert(ManglingContextDecl && "Need to have a context declaration");
+ if (!MangleNumbering)
+ MangleNumbering = Ctx.createMangleNumberingContext();
+ return *MangleNumbering;
+}
+
CXXMethodDecl *Sema::startLambdaDefinition(
CXXRecordDecl *Class, SourceRange IntroducerRange,
TypeSourceInfo *MethodTypeInfo, SourceLocation EndLoc,
OpenPOWER on IntegriCloud