aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/elab-vhdl_insts.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/elab-vhdl_insts.adb')
-rw-r--r--src/synth/elab-vhdl_insts.adb41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/synth/elab-vhdl_insts.adb b/src/synth/elab-vhdl_insts.adb
index c2c72c9fa..c1c8fe371 100644
--- a/src/synth/elab-vhdl_insts.adb
+++ b/src/synth/elab-vhdl_insts.adb
@@ -156,27 +156,24 @@ package body Elab.Vhdl_Insts is
end;
when Iir_Kind_Interface_Type_Declaration =>
- if Get_Kind (Get_Parent (Inter)) = Iir_Kind_Entity_Declaration
- then
- declare
- Act : Node;
- Act_Typ : Type_Acc;
- begin
- Act := Get_Actual (Assoc);
- if Get_Kind (Act) in Iir_Kinds_Denoting_Name then
- Act := Get_Type (Act);
- end if;
- if Get_Kind (Act) in Iir_Kinds_Subtype_Definition then
- Act_Typ := Synth_Subtype_Indication (Syn_Inst, Act);
- else
- Act_Typ := Get_Subtype_Object (Syn_Inst, Act);
- end if;
- Act_Typ := Unshare (Act_Typ, Instance_Pool);
- Create_Subtype_Object
- (Sub_Inst, Get_Type (Inter), Act_Typ);
- Release_Expr_Pool (Marker);
- end;
- end if;
+ declare
+ Act : Node;
+ Act_Typ : Type_Acc;
+ begin
+ Act := Get_Actual (Assoc);
+ if Get_Kind (Act) in Iir_Kinds_Denoting_Name then
+ Act := Get_Type (Act);
+ end if;
+ if Get_Kind (Act) in Iir_Kinds_Subtype_Definition then
+ Act_Typ := Synth_Subtype_Indication (Syn_Inst, Act);
+ else
+ Act_Typ := Get_Subtype_Object (Syn_Inst, Act);
+ end if;
+ Act_Typ := Unshare (Act_Typ, Instance_Pool);
+ Create_Subtype_Object
+ (Sub_Inst, Get_Type (Inter), Act_Typ);
+ Release_Expr_Pool (Marker);
+ end;
when Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_File_Declaration
@@ -186,7 +183,7 @@ package body Elab.Vhdl_Insts is
raise Internal_Error;
when Iir_Kinds_Interface_Subprogram_Declaration =>
- raise Internal_Error;
+ null;
end case;
Next_Association_Interface (Assoc, Assoc_Inter);