File tree Expand file tree Collapse file tree 5 files changed +32
-9
lines changed
regression/verilog/system-functions Expand file tree Collapse file tree 5 files changed +32
-9
lines changed Original file line number Diff line number Diff line change 1
- KNOWNBUG
1
+ CORE
2
2
past5.sv
3
3
4
- ^EXIT=0 $
4
+ ^EXIT=10 $
5
5
^SIGNAL=0$
6
6
--
7
7
^warning: ignoring
8
8
--
9
- $past doesn't support the array.
Original file line number Diff line number Diff line change @@ -2,6 +2,6 @@ module main;
2
2
3
3
logic [31 : 0 ] mem[123 ];
4
4
5
- assert property (## 1 mem == $past (mem));
5
+ assert property (mem == $past (mem));
6
6
7
7
endmodule
Original file line number Diff line number Diff line change
1
+ CORE
2
+ past6.sv
3
+
4
+ ^EXIT=10$
5
+ ^SIGNAL=0$
6
+ --
7
+ ^warning: ignoring
8
+ --
Original file line number Diff line number Diff line change
1
+ module main ;
2
+
3
+ typedef struct {
4
+ bit some_bit;
5
+ } inner_struct ;
6
+
7
+ typedef struct {
8
+ bit [31 : 0 ] array [123 ];
9
+ bit other_bit;
10
+ inner_struct inner;
11
+ } my_struct ;
12
+
13
+ my_struct s;
14
+
15
+ assert property (s == $past (s));
16
+
17
+ endmodule
Original file line number Diff line number Diff line change 15
15
#include < util/mathematical_types.h>
16
16
#include < util/prefix.h>
17
17
18
+ #include " verilog_initializer.h"
18
19
#include " verilog_typecheck_base.h"
19
20
#include " verilog_types.h"
20
21
@@ -535,9 +536,7 @@ exprt verilog_inside_exprt::lower() const
535
536
536
537
exprt verilog_past_exprt::default_value () const
537
538
{
538
- auto zero = from_integer (0 , type ());
539
- if (zero.is_nil ())
540
- throw " failed to create $past default value" ;
541
- else
542
- return std::move (zero);
539
+ auto value_opt = verilog_default_initializer (type ());
540
+ CHECK_RETURN (value_opt.has_value ());
541
+ return *value_opt;
543
542
}
You can’t perform that action at this time.
0 commit comments