Skip to content

Commit 0509f0f

Browse files
authored
Merge pull request #1257 from diffblue/verilog-array-type
Verilog: add Verilog type to lowered array type
2 parents 9ab06ff + 345dd54 commit 0509f0f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/verilog/expr2verilog.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2096,7 +2096,15 @@ std::string expr2verilogt::convert(const typet &type)
20962096
else if(type.id()==ID_array)
20972097
{
20982098
auto &array_type = to_array_type(type);
2099-
std::string dest="array [";
2099+
2100+
std::string dest;
2101+
2102+
if(type.get(ID_C_verilog_type) == ID_verilog_unpacked_array)
2103+
dest += "unpacked ";
2104+
else if(type.get(ID_C_verilog_type) == ID_verilog_packed_array)
2105+
dest += "packed ";
2106+
2107+
dest += "array [";
21002108

21012109
dest += convert(array_type.size());
21022110

src/verilog/verilog_elaborate_type.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ array_typet verilog_typecheck_exprt::convert_unpacked_array_type(
7373
auto result = array_typet{element_type, final_size_expr};
7474
result.set(ID_offset, from_integer(offset, integer_typet()));
7575
result.set(ID_C_increasing, increasing);
76+
result.set(ID_C_verilog_type, ID_verilog_unpacked_array);
7677

7778
return result;
7879
}
@@ -123,6 +124,7 @@ typet verilog_typecheck_exprt::convert_packed_array_type(
123124
dest.set_width(width.to_ulong());
124125
dest.set(ID_C_increasing, range.increasing());
125126
dest.set(ID_C_offset, integer2string(offset));
127+
dest.set(ID_C_verilog_type, ID_verilog_packed_array);
126128

127129
return std::move(dest).with_source_location(source_location);
128130
}
@@ -142,6 +144,7 @@ typet verilog_typecheck_exprt::convert_packed_array_type(
142144

143145
array_typet result{element_type, size};
144146
result.set(ID_offset, from_integer(offset, integer_typet()));
147+
result.set(ID_C_verilog_type, ID_verilog_packed_array);
145148

146149
return std::move(result).with_source_location(source_location);
147150
}

0 commit comments

Comments
 (0)