diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-11-15 06:37:04 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-11-15 06:37:04 +0100 |
commit | c4a49156d90fed4b111ecb8c75d34669a006f9aa (patch) | |
tree | 2d22adc19a7e300264c2fa8d6ce77b116cea3c5f /src/grt | |
parent | 8ed4b88145fffe220cd9839d93a76ea23caf56d9 (diff) | |
download | ghdl-c4a49156d90fed4b111ecb8c75d34669a006f9aa.tar.gz ghdl-c4a49156d90fed4b111ecb8c75d34669a006f9aa.tar.bz2 ghdl-c4a49156d90fed4b111ecb8c75d34669a006f9aa.zip |
grt-disp_signals: handle implicit delayed signals.
Diffstat (limited to 'src/grt')
-rw-r--r-- | src/grt/grt-disp_signals.adb | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/src/grt/grt-disp_signals.adb b/src/grt/grt-disp_signals.adb index 2634a7f99..f2e86572c 100644 --- a/src/grt/grt-disp_signals.adb +++ b/src/grt/grt-disp_signals.adb @@ -218,29 +218,37 @@ package body Grt.Disp_Signals is Put_I32 (stdout, Ghdl_I32 (Sig.Nbr_Ports)); Put (" ports"); end if; - if Sig.S.Mode_Sig in Mode_Signal_User then - if Sig.S.Resolv /= null then - Put (stdout, " res func "); - Put (stdout, To_Address(Sig.S.Resolv)); - end if; - if Sig.S.Nbr_Drivers = 0 then - Put ("; no driver"); - elsif Sig.S.Nbr_Drivers = 1 then - Put ("; trans="); - Disp_Transaction - (Sig.S.Drivers (0).First_Trans, Sig_Type, Sig.Mode); - else - for I in 0 .. Sig.S.Nbr_Drivers - 1 loop - New_Line; - Put (" "); - Disp_Context - (Processes.Get_Rti_Context (Sig.S.Drivers (I).Proc)); - Put (": "); + case Sig.S.Mode_Sig is + when Mode_Signal_User => + if Sig.S.Resolv /= null then + Put (stdout, " res func "); + Put (stdout, To_Address(Sig.S.Resolv)); + end if; + if Sig.S.Nbr_Drivers = 0 then + Put ("; no driver"); + elsif Sig.S.Nbr_Drivers = 1 then + Put ("; trans="); Disp_Transaction - (Sig.S.Drivers (I).First_Trans, Sig_Type, Sig.Mode); - end loop; - end if; - end if; + (Sig.S.Drivers (0).First_Trans, Sig_Type, Sig.Mode); + else + for I in 0 .. Sig.S.Nbr_Drivers - 1 loop + New_Line; + Put (" "); + Disp_Context + (Processes.Get_Rti_Context (Sig.S.Drivers (I).Proc)); + Put (": "); + Disp_Transaction + (Sig.S.Drivers (I).First_Trans, Sig_Type, Sig.Mode); + end loop; + end if; + + when Mode_Delayed => + Put ("; trans="); + Disp_Transaction (Sig.S.Attr_Trans, Sig_Type, Sig.Mode); + + when others => + null; + end case; end if; New_Line; end Disp_Simple_Signal; |