diff --git a/Changes b/Changes index 965d20935..f1ffba38f 100644 --- a/Changes +++ b/Changes @@ -24,6 +24,8 @@ indicates the contributor was also the author of the fix; Thanks! **** Fix signed/unsigned parameter misconversion, bug606. [Jeremy Bennett] +**** Fix segfault on multidimensional dotted arrays, bug607. [Jie Xu] + **** Fix package logic var compile error. diff --git a/src/V3LinkDot.cpp b/src/V3LinkDot.cpp index cb0e42153..d76aa4c99 100644 --- a/src/V3LinkDot.cpp +++ b/src/V3LinkDot.cpp @@ -1563,6 +1563,7 @@ private: m_ds.init(m_curSymp); nodep->rhsp()->iterateAndNext(*this); nodep->thsp()->iterateAndNext(*this); + nodep->attrp()->iterateAndNext(*this); } m_ds = lastStates; } diff --git a/test_regress/t/t_param_mem_attr.v b/test_regress/t/t_param_mem_attr.v index a4eda3de4..f2369c1af 100644 --- a/test_regress/t/t_param_mem_attr.v +++ b/test_regress/t/t_param_mem_attr.v @@ -21,10 +21,12 @@ module t (/*AUTOARG*/ ); input clk; wire [71:0] ctrl; + wire [7:0] cl; // this line is added memory #(.words(72)) i_memory (.clk (clk)); assign ctrl = i_memory.mem[0]; + assign cl = i_memory.mem[0][7:0]; // and this line endmodule