diff --git a/include/verilated_std.sv b/include/verilated_std.sv index 03da57ccb..1c13cd42e 100644 --- a/include/verilated_std.sv +++ b/include/verilated_std.sv @@ -181,15 +181,21 @@ package std; `ifdef VERILATOR_TIMING `systemc_header_post template<> template<> -bool VlClassRef<`systemc_class_name>::operator==(const VlClassRef<`systemc_class_name>& rhs) const { +inline bool VlClassRef<`systemc_class_name>::operator==(const VlClassRef<`systemc_class_name>& rhs) const { + if (!m_objp && !rhs.m_objp) return true; + if (!m_objp || !rhs.m_objp) return false; return m_objp->__PVT__m_process == rhs.m_objp->__PVT__m_process; }; template<> template<> -bool VlClassRef<`systemc_class_name>::operator!=(const VlClassRef<`systemc_class_name>& rhs) const { +inline bool VlClassRef<`systemc_class_name>::operator!=(const VlClassRef<`systemc_class_name>& rhs) const { + if (!m_objp && !rhs.m_objp) return false; + if (!m_objp || !rhs.m_objp) return true; return m_objp->__PVT__m_process != rhs.m_objp->__PVT__m_process; }; template<> template<> -bool VlClassRef<`systemc_class_name>::operator<(const VlClassRef<`systemc_class_name>& rhs) const { +inline bool VlClassRef<`systemc_class_name>::operator<(const VlClassRef<`systemc_class_name>& rhs) const { + if (!m_objp && !rhs.m_objp) return false; + if (!m_objp || !rhs.m_objp) return false; return m_objp->__PVT__m_process < rhs.m_objp->__PVT__m_process; }; `verilog