From: Chandler Carruth Date: Sun, 17 Jun 2012 11:47:03 +0000 (+0000) Subject: Switch users of SmallMap to use SmallDenseMap instead. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7553ad2b7513fce1acd85658279da204fa99426f;p=clang Switch users of SmallMap to use SmallDenseMap instead. The most important change here is that the destructor and copy constructor for StoredDeclsList will now reliably be run. Previously, the destructors at least were missed in some cases. See the LLVM commits discussions for why SmallMap is broken and going away. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158642 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/CXXInheritance.h b/include/clang/AST/CXXInheritance.h index 814e2761da..ee6eba78e4 100644 --- a/include/clang/AST/CXXInheritance.h +++ b/include/clang/AST/CXXInheritance.h @@ -19,7 +19,7 @@ #include "clang/AST/DeclCXX.h" #include "clang/AST/Type.h" #include "clang/AST/TypeOrdering.h" -#include "llvm/ADT/SmallMap.h" +#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallVector.h" #include @@ -128,7 +128,7 @@ class CXXBasePaths { /// while the element contains the number of non-virtual base /// class subobjects for that class type. The key of the map is /// the cv-unqualified canonical type of the base class subobject. - llvm::SmallMap, 8> ClassSubobjects; + llvm::SmallDenseMap, 8> ClassSubobjects; /// FindAmbiguities - Whether Sema::IsDerivedFrom should try find /// ambiguous paths while it is looking for a path from a derived diff --git a/include/clang/AST/DeclContextInternals.h b/include/clang/AST/DeclContextInternals.h index 9a70f9d405..39f04c68a3 100644 --- a/include/clang/AST/DeclContextInternals.h +++ b/include/clang/AST/DeclContextInternals.h @@ -18,7 +18,7 @@ #include "clang/AST/DeclarationName.h" #include "clang/AST/DeclCXX.h" #include "llvm/ADT/PointerUnion.h" -#include "llvm/ADT/SmallMap.h" +#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" #include @@ -196,7 +196,7 @@ public: }; class StoredDeclsMap - : public llvm::SmallMap { + : public llvm::SmallDenseMap { public: static void DestroyAll(StoredDeclsMap *Map, bool Dependent);