aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-09-21 17:15:24 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-09-21 17:15:24 +0000
commit490dd9c70dc25bd7b1936a05d7878dc151f96c46 (patch)
tree211d144c5ff7fa3adb0c57b182396e22559a7eaf
parentdb9eeb88d8e63a28f0b7d623011ec286a84f68a3 (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.h8
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