mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Fix Const::const_iterator tag to be bidirectional_iterator_tag
This commit is contained in:
		
							parent
							
								
									03127173c6
								
							
						
					
					
						commit
						514fb8f901
					
				
					 2 changed files with 8 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -615,11 +615,11 @@ void RTLIL::Const::append(const RTLIL::Const &other) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
RTLIL::State RTLIL::Const::const_iterator::operator*() const {
 | 
			
		||||
	if (auto bv = parent.get_if_bits())
 | 
			
		||||
	if (auto bv = parent->get_if_bits())
 | 
			
		||||
		return (*bv)[idx];
 | 
			
		||||
 | 
			
		||||
	int char_idx = parent.get_str().size() - idx / 8 - 1;
 | 
			
		||||
	bool bit = (parent.get_str()[char_idx] & (1 << (idx % 8)));
 | 
			
		||||
	int char_idx = parent->get_str().size() - idx / 8 - 1;
 | 
			
		||||
	bool bit = (parent->get_str()[char_idx] & (1 << (idx % 8)));
 | 
			
		||||
	return bit ? State::S1 : State::S0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -888,17 +888,17 @@ public:
 | 
			
		|||
 | 
			
		||||
	class const_iterator {
 | 
			
		||||
	private:
 | 
			
		||||
		const Const& parent;
 | 
			
		||||
		const Const* parent;
 | 
			
		||||
		size_t idx;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		using iterator_category = std::input_iterator_tag;
 | 
			
		||||
		using iterator_category = std::bidirectional_iterator_tag;
 | 
			
		||||
		using value_type = State;
 | 
			
		||||
		using difference_type = std::ptrdiff_t;
 | 
			
		||||
		using pointer = const State*;
 | 
			
		||||
		using reference = const State&;
 | 
			
		||||
 | 
			
		||||
		const_iterator(const Const& c, size_t i) : parent(c), idx(i) {}
 | 
			
		||||
		const_iterator(const Const& c, size_t i) : parent(&c), idx(i) {}
 | 
			
		||||
 | 
			
		||||
		State operator*() const;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -909,10 +909,10 @@ public:
 | 
			
		|||
		const_iterator& operator+=(int i) { idx += i; return *this; }
 | 
			
		||||
 | 
			
		||||
		const_iterator operator+(int add) {
 | 
			
		||||
			return const_iterator(parent, idx + add);
 | 
			
		||||
			return const_iterator(*parent, idx + add);
 | 
			
		||||
		}
 | 
			
		||||
		const_iterator operator-(int sub) {
 | 
			
		||||
			return const_iterator(parent, idx - sub);
 | 
			
		||||
			return const_iterator(*parent, idx - sub);
 | 
			
		||||
		}
 | 
			
		||||
		int operator-(const const_iterator& other) {
 | 
			
		||||
			return idx - other.idx;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue