aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/disp_vhdl.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/disp_vhdl.adb')
-rw-r--r--src/vhdl/disp_vhdl.adb16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/vhdl/disp_vhdl.adb b/src/vhdl/disp_vhdl.adb
index 291214af6..c00565515 100644
--- a/src/vhdl/disp_vhdl.adb
+++ b/src/vhdl/disp_vhdl.adb
@@ -2335,7 +2335,18 @@ package body Disp_Vhdl is
end if;
Formal := Get_Formal (El);
if Formal /= Null_Iir then
- Disp_Expression (Formal);
+ case Get_Kind (El) is
+ when Iir_Kind_Association_Element_Package
+ | Iir_Kind_Association_Element_Type
+ | Iir_Kind_Association_Element_Subprogram =>
+ Disp_Name (Formal);
+ when Iir_Kind_Association_Element_By_Expression
+ | Iir_Kind_Association_Element_By_Individual
+ | Iir_Kind_Association_Element_Open =>
+ Disp_Expression (Formal);
+ when others =>
+ raise Internal_Error;
+ end case;
if Conv /= Null_Iir then
Put (")");
end if;
@@ -2346,7 +2357,8 @@ package body Disp_Vhdl is
when Iir_Kind_Association_Element_Open =>
Put ("open");
when Iir_Kind_Association_Element_Package
- | Iir_Kind_Association_Element_Type =>
+ | Iir_Kind_Association_Element_Type
+ | Iir_Kind_Association_Element_Subprogram =>
Disp_Name (Get_Actual (El));
when others =>
Conv := Get_In_Conversion (El);