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 | |
| 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
| -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 | 
