diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-04-05 09:37:50 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-04-05 10:47:40 +0200 |
commit | 587497a48febf62e5c44d97796e78136c29d6d0c (patch) | |
tree | 945a0099a1fa1d3a9a35a4cdb26177a2ba189ae5 /src | |
parent | 88497515714305117625f50ec412c8479e79c243 (diff) | |
download | ghdl-587497a48febf62e5c44d97796e78136c29d6d0c.tar.gz ghdl-587497a48febf62e5c44d97796e78136c29d6d0c.tar.bz2 ghdl-587497a48febf62e5c44d97796e78136c29d6d0c.zip |
vhdl-sem_psl.adb: handle goto/equal repeated sequence. For #1708
Diffstat (limited to 'src')
-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 |