Author: hans Date: Wed Apr 26 16:37:30 2017 New Revision: 301479 URL: http://llvm.org/viewvc/llvm-project?rev=301479&view=rev Log: Merging r292034: (PR32315)
Tweaked to not remove the non-const variants as to not change the ABI. ------------------------------------------------------------------------ r292034 | majnemer | 2017-01-14 13:54:58 -0800 (Sat, 14 Jan 2017) | 7 lines Adding const overloads of operator* and operator-> for DenseSet iterators This fixes some problems when building ClangDiagnostics.cpp on Visual Studio 2017 RC. As far as I understand, there was a change in the implementation of the constructor for std::vector with two iterator parameters, which in our case causes an attempt to dereference const Iterator objects. Since there was no overload for a const Iterator, the compile would fail. Patch by Hugo Puhlmann! Differential Revision: https://reviews.llvm.org/D28726 ------------------------------------------------------------------------ Modified: llvm/branches/release_40/ (props changed) llvm/branches/release_40/include/llvm/ADT/DenseSet.h Propchange: llvm/branches/release_40/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Apr 26 16:37:30 2017 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292117,292133,292167,292169-292170,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,292949,293017,293021,293025,293124,293230,293259,293273,293291,293293,293309,293345,293417,293522,293542,293629,293635,293658,293673,293727,293730,294003,294102,294129,294203,294267,294318,294348-294349,294357,294527,294551,294982,295018,295116,295213,295215,295230,295486,295490,295512,295762,295990,296003,296030,296093,296260,296642,296992,297075 +/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292034,292117,292133,292167,292169-292170,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,292949,293017,293021,293025,293124,293230,293259,293273,293291,293293,293309,293345,293417,293522,293542,293629,293635,293658,293673,293727,293730,294003,294102,294129,294203,294267,294318,294348-294349,294357,294527,294551,294982,295018,295116,295213,295215,295230,295486,295490,295512,295762,295990,296003,296030,296093,296260,296642,296992,297075 Modified: llvm/branches/release_40/include/llvm/ADT/DenseSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/include/llvm/ADT/DenseSet.h?rev=301479&r1=301478&r2=301479&view=diff ============================================================================== --- llvm/branches/release_40/include/llvm/ADT/DenseSet.h (original) +++ llvm/branches/release_40/include/llvm/ADT/DenseSet.h Wed Apr 26 16:37:30 2017 @@ -104,7 +104,9 @@ public: Iterator(const typename MapTy::iterator &i) : I(i) {} ValueT &operator*() { return I->getFirst(); } + const ValueT &operator*() const { return I->getFirst(); } ValueT *operator->() { return &I->getFirst(); } + const ValueT *operator->() const { return &I->getFirst(); } Iterator& operator++() { ++I; return *this; } Iterator operator++(int) { auto T = *this; ++I; return T; } @@ -126,7 +128,9 @@ public: ConstIterator(const typename MapTy::const_iterator &i) : I(i) {} const ValueT &operator*() { return I->getFirst(); } + const ValueT &operator*() const { return I->getFirst(); } const ValueT *operator->() { return &I->getFirst(); } + const ValueT *operator->() const { return &I->getFirst(); } ConstIterator& operator++() { ++I; return *this; } ConstIterator operator++(int) { auto T = *this; ++I; return T; } _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits