aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDag Lem <dag@nimrod.no>2023-02-28 18:45:55 +0100
committerDag Lem <dag@nimrod.no>2023-03-05 14:54:17 +0100
commit0d3423ddea1c24aea74206d64e6dc5196959ad5e (patch)
tree54d372ef0ca8357c95f4dd38dfabb9e4a586cbbc /tests
parent79043cb849e01b494e1ab432dc52f5f99d5ff4af (diff)
downloadyosys-0d3423ddea1c24aea74206d64e6dc5196959ad5e.tar.gz
yosys-0d3423ddea1c24aea74206d64e6dc5196959ad5e.tar.bz2
yosys-0d3423ddea1c24aea74206d64e6dc5196959ad5e.zip
Index struct/union members within corresponding wire chunks
This guards against access to bits outside of struct/union members via dynamic indexing.
Diffstat (limited to 'tests')
-rw-r--r--tests/svtypes/struct_array.sv3
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/svtypes/struct_array.sv b/tests/svtypes/struct_array.sv
index b87f936aa..bedc05b6f 100644
--- a/tests/svtypes/struct_array.sv
+++ b/tests/svtypes/struct_array.sv
@@ -12,15 +12,16 @@ module top;
s.a[2:1] = 16'h1234;
s.a[5] = 8'h42;
+ s.a[-1] = '0;
s.b = '1;
s.b[1:0] = '0;
end
always_comb assert(s==64'h4200_0012_3400_FFFC);
+ always_comb assert(s.a[0][3:-4]===8'h0x);
always_comb assert(s.b[23:16]===8'hxx);
always_comb assert(s.b[19:12]===8'hxf);
- always_comb assert(s.a[0][3:-4]===8'h0x);
struct packed {
bit [7:0] [7:0] a; // 8 element packed array of bytes