diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/rtlil.cc | 6 | ||||
| -rw-r--r-- | kernel/rtlil.h | 3 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index ded1cd60e..bd2fd91a3 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -3554,6 +3554,12 @@ bool RTLIL::SigSpec::operator ==(const RTLIL::SigSpec &other) const  	if (width_ != other.width_)  		return false; +	// Without this, SigSpec() == SigSpec(State::S0, 0) will fail +	//   since the RHS will contain one SigChunk of width 0 causing +	//   the size check below to fail +	if (width_ == 0) +		return true; +  	pack();  	other.pack(); diff --git a/kernel/rtlil.h b/kernel/rtlil.h index c08653b65..e5b24cc02 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -609,8 +609,11 @@ struct RTLIL::Const  	std::string decode_string() const;  	inline int size() const { return bits.size(); } +	inline bool empty() const { return bits.empty(); }  	inline RTLIL::State &operator[](int index) { return bits.at(index); }  	inline const RTLIL::State &operator[](int index) const { return bits.at(index); } +	inline decltype(bits)::iterator begin() { return bits.begin(); } +	inline decltype(bits)::iterator end() { return bits.end(); }  	bool is_fully_zero() const;  	bool is_fully_ones() const; | 
