diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-09-21 17:15:24 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-09-21 17:15:24 +0000 |
commit | 490dd9c70dc25bd7b1936a05d7878dc151f96c46 (patch) | |
tree | 211d144c5ff7fa3adb0c57b182396e22559a7eaf | |
parent | db9eeb88d8e63a28f0b7d623011ec286a84f68a3 (diff) |
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
-rw-r--r-- | include/clang/AST/CXXInheritance.h | 8 |
1 files changed, 4 insertions, 4 deletions
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 <list> @@ -272,7 +272,7 @@ struct UniqueVirtualMethod { /// subobject in which that virtual function occurs). class OverridingMethods { typedef SmallVector<UniqueVirtualMethod, 4> ValuesT; - typedef llvm::DenseMap<unsigned, ValuesT> MapType; + typedef llvm::MapVector<unsigned, ValuesT> 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<const CXXMethodDecl *, OverridingMethods> { }; +class CXXFinalOverriderMap + : public llvm::MapVector<const CXXMethodDecl *, OverridingMethods> { }; /// \brief A set of all the primary bases for a class. class CXXIndirectPrimaryBaseSet |