aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/grt-disp_signals.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-08-02 09:26:44 +0200
committerTristan Gingold <tgingold@free.fr>2020-08-03 19:05:59 +0200
commitab2fd3d52f149efcc9cc66f0a0a5e378a1d63918 (patch)
treeea3055f70f47b593b70a1f1af911bcb2946dc02f /src/grt/grt-disp_signals.adb
parent024086cfb9c965abc579aa7fb5efc3e63d39c6b5 (diff)
downloadghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.tar.gz
ghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.tar.bz2
ghdl-ab2fd3d52f149efcc9cc66f0a0a5e378a1d63918.zip
vhdl: handle force/release statements in translate and grt. For #1416
Diffstat (limited to 'src/grt/grt-disp_signals.adb')
-rw-r--r--src/grt/grt-disp_signals.adb38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/grt/grt-disp_signals.adb b/src/grt/grt-disp_signals.adb
index 887898109..78b065432 100644
--- a/src/grt/grt-disp_signals.adb
+++ b/src/grt/grt-disp_signals.adb
@@ -167,30 +167,28 @@ package body Grt.Disp_Signals is
end loop;
end Disp_Transaction;
+ procedure Disp_Flag (Name : Character; Cond : Boolean)
+ is
+ C : Character;
+ begin
+ if Cond then
+ C := Name;
+ else
+ C := '-';
+ end if;
+ Put (C);
+ end Disp_Flag;
+
procedure Disp_Single_Signal_Attributes (Sig : Ghdl_Signal_Ptr) is
begin
Disp_Mode (Sig.Mode);
Put (' ');
- if Sig.Active then
- Put ('A');
- else
- Put ('-');
- end if;
- if Sig.Event then
- Put ('E');
- else
- Put ('-');
- end if;
- if Sig.Has_Active then
- Put ('a');
- else
- Put ('-');
- end if;
- if Sig.S.Effective /= null then
- Put ('e');
- else
- Put ('-');
- end if;
+ Disp_Flag ('A', Sig.Active);
+ Disp_Flag ('E', Sig.Event);
+ Disp_Flag ('a', Sig.Has_Active);
+ Disp_Flag ('e', Sig.S.Effective /= null);
+ Disp_Flag ('F', Sig.Flags.Is_Drv_Forced);
+ Disp_Flag ('f', Sig.Flags.Is_Eff_Forced);
if Boolean'(True) then
Put (" last_event=");
Put_Time (stdout, Sig.Last_Event);