Fix crash on Dfg driver lookup

Fixes #6649
This commit is contained in:
Geza Lore 2025-11-08 13:02:39 +00:00
parent 3b7ddce207
commit ec3c9832de
2 changed files with 11 additions and 8 deletions

View File

@ -371,7 +371,7 @@ public:
FileLine* driverFileLine(size_t idx) const { return m_driverData.at(idx).m_flp; } FileLine* driverFileLine(size_t idx) const { return m_driverData.at(idx).m_flp; }
DfgVertex* driverAt(size_t idx) { DfgVertex* driverAt(size_t idx) const {
const size_t n = nInputs(); const size_t n = nInputs();
for (size_t i = 0; i < n; ++i) { for (size_t i = 0; i < n; ++i) {
if (m_driverData[i].m_lo == idx) return inputp(i); if (m_driverData[i].m_lo == idx) return inputp(i);
@ -379,13 +379,6 @@ public:
return nullptr; return nullptr;
} }
const DfgVertex* driverAt(size_t idx) const {
for (const DriverData& dd : m_driverData) {
if (dd.m_lo == idx) return inputp(idx);
}
return nullptr;
}
// If drives the whole result explicitly (not through defaultp), this is // If drives the whole result explicitly (not through defaultp), this is
// the actual driver this DfgVertexSplice can be replaced with. // the actual driver this DfgVertexSplice can be replaced with.
DfgVertex* wholep() { DfgVertex* wholep() {

View File

@ -261,4 +261,14 @@ module t (
`signal(PACKED_0_LSB, 1); `signal(PACKED_0_LSB, 1);
assign PACKED_0_LSB = packed_0_lsb; assign PACKED_0_LSB = packed_0_lsb;
// verilator lint_off UNOPTFLAT
logic array_5 [0:6];
// Unconnected d[0:3]
assign array_5[4] = array_5[0] ? array_5[0] : array_5[1];
assign array_5[5] = array_5[2] ? array_5[2] : array_5[3];
assign array_5[6] = array_5[4] ? array_5[4] : array_5[5];
`signal(ARRAY_5, 1);
assign ARRAY_5 = array_5[6];
// verilator lint_on
endmodule endmodule