From f29eeecee7b36cf4313c41f7c7656f3b5b01dcb4 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sat, 29 Mar 2025 07:16:54 -0400 Subject: [PATCH] Fix process comparisons (#5896). --- include/verilated_std.sv | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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