summaryrefslogtreecommitdiff
path: root/translate/translation.adb
diff options
context:
space:
mode:
Diffstat (limited to 'translate/translation.adb')
-rw-r--r--translate/translation.adb11
1 files changed, 8 insertions, 3 deletions
diff --git a/translate/translation.adb b/translate/translation.adb
index 7b8351f..06a6851 100644
--- a/translate/translation.adb
+++ b/translate/translation.adb
@@ -20913,16 +20913,21 @@ package body Translation is
New_Assign_Stmt (New_Obj (Cond),
New_Lit (Ghdl_Bool_True_Node));
New_Else_Stmt (If_Blk);
- -- Or because the value. is different from the current value.
+ -- Or because the value is different from the current driving value.
+ -- FIXME: ideally, we should compare the value with the current
+ -- value of the driver. This is an approximation that might break
+ -- with weird resolution functions.
New_Assign_Stmt
(New_Obj (Cond),
New_Compare_Op (ON_Neq,
- New_Value (New_Access_Element (M2E (Targ_Sig))),
+ Chap7.Translate_Signal_Driving_Value
+ (M2E (Targ_Sig), Targ_Type),
M2E (Drv),
Ghdl_Bool_Type));
Finish_If_Stmt (If_Blk);
- -- Put signal into active list.
+ -- Put signal into active list (if not already in the list).
+ -- FIXME: this is not thread-safe!
Start_If_Stmt
(If_Blk,
New_Dyadic_Op