From: Rafael Espindola Date: Fri, 21 Sep 2012 17:15:24 +0000 (+0000) Subject: Use MapVectors to make the order we mark virtual functions used by a vtable X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=490dd9c70dc25bd7b1936a05d7878dc151f96c46;p=clang Use MapVectors to make the order we mark virtual functions used by a vtable deterministic. Fixes pr13868. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164382 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/CXXInheritance.h b/include/clang/AST/CXXInheritance.h index 5e3145fb64..87bdbe04f3 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/DenseMap.h" +#include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallVector.h" #include @@ -272,7 +272,7 @@ struct UniqueVirtualMethod { /// subobject in which that virtual function occurs). class OverridingMethods { typedef SmallVector ValuesT; - typedef llvm::DenseMap MapType; + typedef llvm::MapVector MapType; MapType Overrides; public: @@ -356,8 +356,8 @@ public: /// 0 represents the virtua base class subobject of that type, while /// subobject numbers greater than 0 refer to non-virtual base class /// subobjects of that type. -class CXXFinalOverriderMap - : public llvm::DenseMap { }; +class CXXFinalOverriderMap + : public llvm::MapVector { }; /// \brief A set of all the primary bases for a class. class CXXIndirectPrimaryBaseSet