diff options
author | Tristan Gingold <tgingold@free.fr> | 2016-09-30 20:28:56 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2016-09-30 20:28:56 +0200 |
commit | 3736fa2cb834ae847e04a5e8ec424e323a76360d (patch) | |
tree | 7bea834281e489a7bb4e17ad95fa4dcdeb6a176b /src/vhdl | |
parent | c2c629ee080e5b7e45b35452c18658bc4ac36471 (diff) | |
download | ghdl-3736fa2cb834ae847e04a5e8ec424e323a76360d.tar.gz ghdl-3736fa2cb834ae847e04a5e8ec424e323a76360d.tar.bz2 ghdl-3736fa2cb834ae847e04a5e8ec424e323a76360d.zip |
sem_inst: handl subprogram association.
Diffstat (limited to 'src/vhdl')
-rw-r--r-- | src/vhdl/sem_inst.adb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/vhdl/sem_inst.adb b/src/vhdl/sem_inst.adb index df3a9781e..0b0b76467 100644 --- a/src/vhdl/sem_inst.adb +++ b/src/vhdl/sem_inst.adb @@ -518,6 +518,8 @@ package body Sem_Inst is Set_Has_Identifier_List (Res, Get_Has_Identifier_List (Inter)); Set_Expr_Staticness (Res, Get_Expr_Staticness (Inter)); Set_Name_Staticness (Res, Get_Name_Staticness (Inter)); + Set_Default_Value (Res, Get_Default_Value (Inter)); + Set_Is_Ref (Res, True); when Iir_Kind_Interface_Package_Declaration => Set_Uninstantiated_Package_Name (Res, Get_Uninstantiated_Package_Name (Inter)); @@ -847,11 +849,19 @@ package body Sem_Inst is Imp_Assoc := Get_Chain (Imp_Assoc); end loop; end; - when Iir_Kind_Association_Element_Package => + + when Iir_Kind_Association_Element_Subprogram => + Inter := Get_Association_Interface (Inst_El, Inter_El); + Set_Instance (Get_Origin (Inter), + Get_Named_Entity (Get_Actual (Inst_El))); + + when Iir_Kind_Association_Element_By_Expression + | Iir_Kind_Association_Element_By_Individual + | Iir_Kind_Association_Element_Open => + null; + when others => -- TODO. raise Internal_Error; - when others => - null; end case; Next_Association_Interface (Inst_El, Inter_El); end loop; |