r283790 - [AST] Don't use make_pointee_iterator in VTableBuilder.
Justin Lebar via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 10 12:26:22 PDT 2016
Author: jlebar
Date: Mon Oct 10 14:26:22 2016
New Revision: 283790
URL: http://llvm.org/viewvc/llvm-project?rev=283790&view=rev
Log:
[AST] Don't use make_pointee_iterator in VTableBuilder.
Our implementation of make_pointee_iterator seems to be causing MSVC
2015 to crash, so I'm going to remove it.
Modified:
cfe/trunk/lib/AST/VTableBuilder.cpp
Modified: cfe/trunk/lib/AST/VTableBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/VTableBuilder.cpp?rev=283790&r1=283789&r2=283790&view=diff
==============================================================================
--- cfe/trunk/lib/AST/VTableBuilder.cpp (original)
+++ cfe/trunk/lib/AST/VTableBuilder.cpp Mon Oct 10 14:26:22 2016
@@ -3361,9 +3361,10 @@ static bool rebucketPaths(VPtrInfoVector
// sorted vector to implement a multiset to form the buckets. Note that the
// ordering is based on pointers, but it doesn't change our output order. The
// current algorithm is designed to match MSVC 2012's names.
- llvm::SmallVector<std::reference_wrapper<VPtrInfo>, 2> PathsSorted(
- llvm::make_pointee_iterator(Paths.begin()),
- llvm::make_pointee_iterator(Paths.end()));
+ llvm::SmallVector<std::reference_wrapper<VPtrInfo>, 2> PathsSorted;
+ PathsSorted.reserve(Paths.size());
+ for (auto& P : Paths)
+ PathsSorted.push_back(*P);
std::sort(PathsSorted.begin(), PathsSorted.end(),
[](const VPtrInfo &LHS, const VPtrInfo &RHS) {
return LHS.MangledPath < RHS.MangledPath;
More information about the cfe-commits
mailing list