From 8ca387d6dee264b78cede6da366407cb276842bf Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Wed, 15 Nov 2023 21:14:24 +0100 Subject: [PATCH] eval_tree: Properly support struct fields in get_array_info Fixes #1032 Signed-off-by: Sylvain Munaut --- eval_tree.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eval_tree.cc b/eval_tree.cc index b9e0ccdda..df8680d73 100644 --- a/eval_tree.cc +++ b/eval_tree.cc @@ -2176,6 +2176,13 @@ static bool get_array_info(const NetExpr*arg, long dim, left = param->expr_width() - 1; right = 0; return false; + } + if (const NetESelect*select = dynamic_cast(arg)) { + const netranges_t&dim_vals = select->net_type()->slice_dimensions(); + const netrange_t&range = dim_vals[dim-1]; + left = range.get_msb(); + right = range.get_lsb(); + return false; } /* The argument must be a signal that has enough dimensions. */ const NetESignal*esig = dynamic_cast(arg);