[llvm] r332697 - [llvm-exegesis] Fix compile error on VS.

Clement Courbet via llvm-commits llvm-commits at lists.llvm.org
Fri May 18 00:18:57 PDT 2018


Author: courbet
Date: Fri May 18 00:18:56 2018
New Revision: 332697

URL: http://llvm.org/viewvc/llvm-project?rev=332697&view=rev
Log:
[llvm-exegesis] Fix compile error on VS.

llvm::BitVector::const_set_bits_iterator is not formally a
ForwardIterator. Using it as such results in compile time errors on some
compilers:

FAILED: unittests/tools/llvm-exegesis/X86/CMakeFiles/LLVMExegesisX86Tests.dir/RegisterAliasingTest.cpp.obj
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(967): error C2794: 'iterator_category': is not a member of any direct or indirect base class of 'std::iterator_traits<_InIt>'
        with
        [
            _InIt=llvm::BitVector::const_set_bits_iterator
        ]

Modified:
    llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp

Modified: llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp?rev=332697&r1=332696&r2=332697&view=diff
==============================================================================
--- llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp (original)
+++ llvm/trunk/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp Fri May 18 00:18:56 2018
@@ -44,9 +44,9 @@ private:
 TEST_F(RegisterAliasingTest, TrackSimpleRegister) {
   const auto &RegInfo = getMCRegInfo();
   const RegisterAliasingTracker tracker(RegInfo, llvm::X86::EAX);
-  const std::set<llvm::MCPhysReg> ActualAliasedRegisters(
-      tracker.aliasedBits().set_bits().begin(),
-      tracker.aliasedBits().set_bits().end());
+  std::set<llvm::MCPhysReg> ActualAliasedRegisters;
+  for (unsigned I : tracker.aliasedBits().set_bits())
+    ActualAliasedRegisters.insert(static_cast<llvm::MCPhysReg>(I));
   const std::set<llvm::MCPhysReg> ExpectedAliasedRegisters = {
       llvm::X86::AL,  llvm::X86::AH,  llvm::X86::AX,
       llvm::X86::EAX, llvm::X86::HAX, llvm::X86::RAX};




More information about the llvm-commits mailing list