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