summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp')
-rw-r--r--contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp b/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
index 5db5f92..8dd53ee 100644
--- a/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -13,6 +13,7 @@
//===----------------------------------------------------------------------===//
#include "ASTCommon.h"
+#include "ASTReaderInternals.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Sema/IdentifierResolver.h"
#include "clang/Sema/Sema.h"
@@ -955,6 +956,10 @@ void ASTDeclReader::VisitBlockDecl(BlockDecl *BD) {
Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));
BD->setParams(Params);
+ BD->setIsVariadic(Record[Idx++]);
+ BD->setBlockMissingReturnType(Record[Idx++]);
+ BD->setIsConversionFromLambda(Record[Idx++]);
+
bool capturesCXXThis = Record[Idx++];
unsigned numCaptures = Record[Idx++];
SmallVector<BlockDecl::Capture, 16> captures;
@@ -2100,7 +2105,9 @@ Decl *ASTReader::ReadDeclRecord(DeclID ID) {
DeclContextVisibleUpdates &U = I->second;
for (DeclContextVisibleUpdates::iterator UI = U.begin(), UE = U.end();
UI != UE; ++UI) {
- UI->second->DeclContextInfos[DC].NameLookupTableData = UI->first;
+ DeclContextInfo &Info = UI->second->DeclContextInfos[DC];
+ delete Info.NameLookupTableData;
+ Info.NameLookupTableData = UI->first;
}
PendingVisibleUpdates.erase(I);
}
OpenPOWER on IntegriCloud