diff options
-rw-r--r-- | src/vhdl/vhdl-sem_psl.adb | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/vhdl/vhdl-sem_psl.adb b/src/vhdl/vhdl-sem_psl.adb index f6be38207..18141eeb8 100644 --- a/src/vhdl/vhdl-sem_psl.adb +++ b/src/vhdl/vhdl-sem_psl.adb @@ -505,15 +505,27 @@ package body Vhdl.Sem_Psl is when N_Braced_SERE => return Sem_Sequence (Prop); when N_Star_Repeat_Seq - | N_Equal_Repeat_Seq - | N_Plus_Repeat_Seq + | N_Plus_Repeat_Seq => + declare + Seq : PSL_Node; + begin + Seq := Get_Sequence (Prop); + if Seq /= Null_PSL_Node then + Seq := Sem_Sequence (Seq); + Set_Sequence (Prop, Seq); + end if; + return Prop; + end; + when N_Equal_Repeat_Seq | N_Goto_Repeat_Seq => - Res := Get_Sequence (Prop); - if Res /= Null_PSL_Node then - Res := Sem_Sequence (Get_Sequence (Prop)); - Set_Sequence (Prop, Res); - end if; - return Prop; + declare + B : PSL_Node; + begin + B := Get_Boolean (Prop); + B := Sem_Boolean (B); + Set_Boolean (Prop, B); + return Prop; + end; when N_Always | N_Never => -- By extension, clock_event is allowed within outermost |