aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_stmts.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_stmts.adb')
-rw-r--r--src/vhdl/sem_stmts.adb13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/vhdl/sem_stmts.adb b/src/vhdl/sem_stmts.adb
index f26e432c9..d352aac0a 100644
--- a/src/vhdl/sem_stmts.adb
+++ b/src/vhdl/sem_stmts.adb
@@ -464,7 +464,7 @@ package body Sem_Stmts is
We: Iir_Waveform_Element;
Time, Last_Time : Iir_Int64;
begin
- if Waveform_Chain = Null_Iir then
+ if Get_Kind (Waveform_Chain) = Iir_Kind_Unaffected_Waveform then
-- Unaffected.
return;
end if;
@@ -584,7 +584,7 @@ package body Sem_Stmts is
Expr : Iir;
Targ_Type : Iir;
begin
- if Waveform_Chain = Null_Iir then
+ if Get_Kind (Waveform_Chain) = Iir_Kind_Unaffected_Waveform then
return;
end if;
@@ -722,9 +722,12 @@ package body Sem_Stmts is
El := Get_Selected_Waveform_Chain (Stmt);
while El /= Null_Iir loop
Wf_Chain := Get_Associated_Chain (El);
- Sem_Waveform_Chain (Wf_Chain, Target_Type);
- if Done then
- Sem_Check_Waveform_Chain (Stmt, Wf_Chain);
+ if Is_Valid (Wf_Chain) then
+ -- The first choice of a list.
+ Sem_Waveform_Chain (Wf_Chain, Target_Type);
+ if Done then
+ Sem_Check_Waveform_Chain (Stmt, Wf_Chain);
+ end if;
end if;
El := Get_Chain (El);
end loop;