diff options
Diffstat (limited to 'include/llvm/Support')
-rw-r--r-- | include/llvm/Support/CRSBuilder.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/Support/CRSBuilder.h b/include/llvm/Support/CRSBuilder.h index 1fd1683..5608931 100644 --- a/include/llvm/Support/CRSBuilder.h +++ b/include/llvm/Support/CRSBuilder.h @@ -100,14 +100,16 @@ public: Sorted = false; } - bool verify() { + bool verify(RangeIterator& errItem) { if (Items.empty()) return true; sort(); for (CaseItemIt i = Items.begin(), j = i+1, e = Items.end(); j != e; i = j++) { - if (isIntersected(j, i) && j->second != i->second) + if (isIntersected(j, i) && j->second != i->second) { + errItem = j; return false; + } } return true; } @@ -185,11 +187,14 @@ public: template <class SuccessorClass> class CRSBuilderT : public CRSBuilderBase<SuccessorClass, false> { +public: typedef typename CRSBuilderBase<SuccessorClass, false>::RangeTy RangeTy; typedef typename CRSBuilderBase<SuccessorClass, false>::RangeIterator RangeIterator; +private: + typedef std::list<RangeTy> RangesCollection; typedef typename RangesCollection::iterator RangesCollectionIt; |