aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap5.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-08-22 22:14:44 +0200
committerTristan Gingold <tgingold@free.fr>2021-08-23 07:24:03 +0200
commita20bce35a9ee05e8e2a4599e510d08fe2fd9ebc5 (patch)
treedec9edf5c3410fa2efbdb7849e62b0b66a11764d /src/vhdl/translate/trans-chap5.adb
parentbbdff59e4e68e89033843f9344814c957b0b6250 (diff)
downloadghdl-a20bce35a9ee05e8e2a4599e510d08fe2fd9ebc5.tar.gz
ghdl-a20bce35a9ee05e8e2a4599e510d08fe2fd9ebc5.tar.bz2
ghdl-a20bce35a9ee05e8e2a4599e510d08fe2fd9ebc5.zip
Rework inertial associations.
Fix #1625 Fix #1672
Diffstat (limited to 'src/vhdl/translate/trans-chap5.adb')
-rw-r--r--src/vhdl/translate/trans-chap5.adb14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/vhdl/translate/trans-chap5.adb b/src/vhdl/translate/trans-chap5.adb
index 9b2eec152..e9b11f8eb 100644
--- a/src/vhdl/translate/trans-chap5.adb
+++ b/src/vhdl/translate/trans-chap5.adb
@@ -760,9 +760,17 @@ package body Trans.Chap5 is
-- Create non-collapsed signals.
Chap4.Elab_Signal_Declaration_Object
(Formal, Block_Parent, False);
- -- And associate.
- Elab_Port_Map_Aspect_Assoc
- (Assoc, Formal, False, Formal_Env, Actual_Env);
+ -- And associate (if not an inertial association).
+ if (Get_Kind (Assoc)
+ = Iir_Kind_Association_Element_By_Name)
+ or else (Get_Expr_Staticness (Get_Actual (Assoc))
+ /= None)
+ then
+ Elab_Port_Map_Aspect_Assoc
+ (Assoc, Formal, False, Formal_Env, Actual_Env);
+ else
+ Chap9.Elab_Inertial_Association (Assoc, Formal);
+ end if;
end if;
else
-- By sub-element.