aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorMiodrag Milanović <mmicko@gmail.com>2019-10-18 10:53:56 +0200
committerGitHub <noreply@github.com>2019-10-18 10:53:56 +0200
commit66fca65b58bfb944cad45da5836613726498e4b7 (patch)
treea78b5d92952ea9f95623bb3daf8028d2402d023b /kernel
parent46af9a0ff7727c2d47b1dc12501e3328cba1f2e9 (diff)
parent5ffb0053ec7d53ffc5c57e3277bfbab5d3fddb54 (diff)
downloadyosys-66fca65b58bfb944cad45da5836613726498e4b7.tar.gz
yosys-66fca65b58bfb944cad45da5836613726498e4b7.tar.bz2
yosys-66fca65b58bfb944cad45da5836613726498e4b7.zip
Merge branch 'master' into mmicko/anlogic
Diffstat (limited to 'kernel')
-rw-r--r--kernel/rtlil.cc6
-rw-r--r--kernel/rtlil.h3
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;