Skip to content

Commit 19a63b7

Browse files
committed
odin - resolve concatenations before making concat strings
1 parent 620cb75 commit 19a63b7

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

ODIN_II/SRC/ast_util.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,8 @@ void make_concat_into_list_of_strings(ast_node_t *concat_top, char *instance_nam
448448
concat_top->types.concat.bit_strings[concat_top->types.concat.num_bit_strings-1] = get_name_of_pin_at_bit(concat_top->children[i], j, instance_name_prefix);
449449
}
450450
}
451-
else {
451+
else
452+
{
452453
error_message(NETLIST_ERROR, concat_top->line_number, concat_top->file_number, "%s", "Unsupported operation within a concatenation.\n");
453454
}
454455
}
@@ -575,6 +576,7 @@ char *get_name_of_pin_at_bit(ast_node_t *var_node, int bit, char *instance_name_
575576
if (var_node->types.concat.num_bit_strings == -1)
576577
{
577578
/* If this hasn't been made into a string list then do it */
579+
var_node = resolve_node(NULL, instance_name_prefix, var_node, NULL, 0);
578580
make_concat_into_list_of_strings(var_node, instance_name_prefix);
579581
}
580582

@@ -747,6 +749,7 @@ char_list_t *get_name_of_pins(ast_node_t *var_node, char *instance_name_prefix)
747749
if (var_node->types.concat.num_bit_strings == -1)
748750
{
749751
/* If this hasn't been made into a string list then do it */
752+
var_node = resolve_node(NULL, instance_name_prefix, var_node, NULL, 0);
750753
make_concat_into_list_of_strings(var_node, instance_name_prefix);
751754
}
752755

0 commit comments

Comments
 (0)