aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap1.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-19 04:13:48 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-19 04:15:12 +0200
commitab0e8ee2d7a77ce7eb2a935be378bd94d1155901 (patch)
treed531d64e0fe01f6c6239dfa92e4e580e2e513d59 /src/vhdl/translate/trans-chap1.adb
parent1a937d7be6bc85c9fe79d00184762e9ddad9460c (diff)
downloadghdl-ab0e8ee2d7a77ce7eb2a935be378bd94d1155901.tar.gz
ghdl-ab0e8ee2d7a77ce7eb2a935be378bd94d1155901.tar.bz2
ghdl-ab0e8ee2d7a77ce7eb2a935be378bd94d1155901.zip
canon: do not set formal of association by position.
Diffstat (limited to 'src/vhdl/translate/trans-chap1.adb')
-rw-r--r--src/vhdl/translate/trans-chap1.adb14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/vhdl/translate/trans-chap1.adb b/src/vhdl/translate/trans-chap1.adb
index 4c5083ef6..a84442df4 100644
--- a/src/vhdl/translate/trans-chap1.adb
+++ b/src/vhdl/translate/trans-chap1.adb
@@ -392,6 +392,10 @@ package body Trans.Chap1 is
end if;
Entity_Aspect := Get_Entity_Aspect (Binding);
+ if Get_Kind (Entity_Aspect) = Iir_Kind_Entity_Aspect_Open then
+ -- Unbound component.
+ return;
+ end if;
Comp := Get_Named_Entity (Get_Component_Name (Cfg));
Comp_Info := Get_Info (Comp);
@@ -530,13 +534,21 @@ package body Trans.Chap1 is
procedure Translate_Component_Configuration_Call
(Cfg : Iir; Base_Block : Iir; Block_Info : Block_Info_Acc)
is
+ Binding : constant Iir := Get_Binding_Indication (Cfg);
+ Aspect : Iir;
Cfg_Info : Config_Info_Acc;
Base_Info : Block_Info_Acc;
begin
- if Get_Binding_Indication (Cfg) = Null_Iir then
+ if Is_Null (Binding) then
-- Unbound component configuration, nothing to do.
return;
end if;
+ Aspect := Get_Entity_Aspect (Binding);
+ if Is_Null (Aspect)
+ or else Get_Kind (Aspect) = Iir_Kind_Entity_Aspect_Open
+ then
+ return;
+ end if;
Cfg_Info := Get_Info (Cfg);
Base_Info := Get_Info (Base_Block);