diff options
Diffstat (limited to 'src/vhdl/translate/trans-chap1.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap1.adb | 14 |
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); |