Index: clang/include/clang/AST/VTableBuilder.h =================================================================== --- clang/include/clang/AST/VTableBuilder.h +++ clang/include/clang/AST/VTableBuilder.h @@ -480,7 +480,8 @@ VFPtrLocationsMapTy VFPtrLocations; typedef std::pair VFTableIdTy; - typedef llvm::DenseMap VFTableLayoutMapTy; + typedef llvm::DenseMap> + VFTableLayoutMapTy; VFTableLayoutMapTy VFTableLayouts; llvm::DenseMap VBaseInfo; Index: clang/lib/AST/VTableBuilder.cpp =================================================================== --- clang/lib/AST/VTableBuilder.cpp +++ clang/lib/AST/VTableBuilder.cpp @@ -3389,7 +3389,6 @@ } MicrosoftVTableContext::~MicrosoftVTableContext() { - llvm::DeleteContainerSeconds(VFTableLayouts); llvm::DeleteContainerSeconds(VBaseInfo); } @@ -3592,7 +3591,7 @@ assert(VFTableLayouts.count(id) == 0); SmallVector VTableThunks( Builder.vtable_thunks_begin(), Builder.vtable_thunks_end()); - VFTableLayouts[id] = new VTableLayout( + VFTableLayouts[id] = llvm::make_unique( Builder.getNumVTableComponents(), Builder.vtable_component_begin(), VTableThunks.size(), VTableThunks.data(), EmptyAddressPointsMap, true); Thunks.insert(Builder.thunks_begin(), Builder.thunks_end());