diff options
author | Tristan Gingold <tgingold@free.fr> | 2016-10-11 06:19:19 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2016-10-11 06:19:19 +0200 |
commit | ec63ed6f4287ef5a0a19817f3803972899cf7648 (patch) | |
tree | be459880175235d631ac0f5249440d63cfc7a3de /src/vhdl/translate | |
parent | 498665c5328fa2c2e0a0d114e39c545d04fbdfe9 (diff) | |
download | ghdl-ec63ed6f4287ef5a0a19817f3803972899cf7648.tar.gz ghdl-ec63ed6f4287ef5a0a19817f3803972899cf7648.tar.bz2 ghdl-ec63ed6f4287ef5a0a19817f3803972899cf7648.zip |
Rework AST to setup ownership and reference policy.
Check it with nodes_gc.
Diffstat (limited to 'src/vhdl/translate')
-rw-r--r-- | src/vhdl/translate/trans-chap2.adb | 12 | ||||
-rw-r--r-- | src/vhdl/translate/trans-chap4.adb | 3 | ||||
-rw-r--r-- | src/vhdl/translate/trans-chap5.adb | 4 | ||||
-rw-r--r-- | src/vhdl/translate/trans-chap7.adb | 2 | ||||
-rw-r--r-- | src/vhdl/translate/trans-chap8.adb | 6 | ||||
-rw-r--r-- | src/vhdl/translate/trans-chap9.adb | 3 |
6 files changed, 14 insertions, 16 deletions
diff --git a/src/vhdl/translate/trans-chap2.adb b/src/vhdl/translate/trans-chap2.adb index 7222f2974..54c844aea 100644 --- a/src/vhdl/translate/trans-chap2.adb +++ b/src/vhdl/translate/trans-chap2.adb @@ -1212,7 +1212,8 @@ package body Trans.Chap2 is when Attr_None => Instantiate_Iir_Info (Get_Iir (N, F)); when Attr_Ref - | Attr_Forward_Ref => + | Attr_Forward_Ref + | Attr_Maybe_Forward_Ref => null; when Attr_Maybe_Ref => if not Get_Is_Ref (N) then @@ -1313,8 +1314,7 @@ package body Trans.Chap2 is -- package_instantiation_declaration procedure Instantiate_Info_Package (Inst : Iir) is - Spec : constant Iir := - Get_Named_Entity (Get_Uninstantiated_Package_Name (Inst)); + Spec : constant Iir := Get_Uninstantiated_Package_Decl (Inst); Pkg_Info : constant Ortho_Info_Acc := Get_Info (Spec); Info : Ortho_Info_Acc; begin @@ -1337,8 +1337,7 @@ package body Trans.Chap2 is procedure Translate_Package_Instantiation_Declaration (Inst : Iir) is - Spec : constant Iir := - Get_Named_Entity (Get_Uninstantiated_Package_Name (Inst)); + Spec : constant Iir := Get_Uninstantiated_Package_Decl (Inst); Pkg_Info : constant Ortho_Info_Acc := Get_Info (Spec); Info : Ortho_Info_Acc; Interface_List : O_Inter_List; @@ -1395,8 +1394,7 @@ package body Trans.Chap2 is procedure Elab_Package_Instantiation_Declaration (Inst : Iir) is - Spec : constant Iir := - Get_Named_Entity (Get_Uninstantiated_Package_Name (Inst)); + Spec : constant Iir := Get_Uninstantiated_Package_Decl (Inst); Pkg_Info : constant Ortho_Info_Acc := Get_Info (Spec); Info : constant Ortho_Info_Acc := Get_Info (Inst); Constr : O_Assoc_List; diff --git a/src/vhdl/translate/trans-chap4.adb b/src/vhdl/translate/trans-chap4.adb index 3fa188df4..e59e7945c 100644 --- a/src/vhdl/translate/trans-chap4.adb +++ b/src/vhdl/translate/trans-chap4.adb @@ -269,8 +269,7 @@ package body Trans.Chap4 is procedure Create_Package_Interface (Inter : Iir) is - Pkg : constant Iir := Get_Named_Entity - (Get_Uninstantiated_Package_Name (Inter)); + Pkg : constant Iir := Get_Uninstantiated_Package_Decl (Inter); Pkg_Info : constant Ortho_Info_Acc := Get_Info (Pkg); Info : Ortho_Info_Acc; begin diff --git a/src/vhdl/translate/trans-chap5.adb b/src/vhdl/translate/trans-chap5.adb index 7572032af..7a6bb0cfb 100644 --- a/src/vhdl/translate/trans-chap5.adb +++ b/src/vhdl/translate/trans-chap5.adb @@ -802,8 +802,8 @@ package body Trans.Chap5 is pragma Assert (Get_Kind (Formal) = Iir_Kind_Interface_Package_Declaration); declare - Uninst_Pkg : constant Iir := Get_Named_Entity - (Get_Uninstantiated_Package_Name (Formal)); + Uninst_Pkg : constant Iir := + Get_Uninstantiated_Package_Decl (Formal); Uninst_Info : constant Ortho_Info_Acc := Get_Info (Uninst_Pkg); Formal_Info : constant Ortho_Info_Acc := diff --git a/src/vhdl/translate/trans-chap7.adb b/src/vhdl/translate/trans-chap7.adb index 451dfcba6..c216e199d 100644 --- a/src/vhdl/translate/trans-chap7.adb +++ b/src/vhdl/translate/trans-chap7.adb @@ -3050,7 +3050,7 @@ package body Trans.Chap7 is Set_El (Get_Nth_Element (El_List, El_Index)); El_Index := El_Index + 1; when Iir_Kind_Choice_By_Name => - Set_El (Get_Choice_Name (Assoc)); + Set_El (Get_Named_Entity (Get_Choice_Name (Assoc))); El_Index := Natural'Last; when Iir_Kind_Choice_By_Others => for J in Set_Array'Range loop diff --git a/src/vhdl/translate/trans-chap8.adb b/src/vhdl/translate/trans-chap8.adb index c8f270174..296f4de7f 100644 --- a/src/vhdl/translate/trans-chap8.adb +++ b/src/vhdl/translate/trans-chap8.adb @@ -919,7 +919,7 @@ package body Trans.Chap8 is Elem := Get_Nth_Element (El_List, El_Index); El_Index := El_Index + 1; when Iir_Kind_Choice_By_Name => - Elem := Get_Choice_Name (Aggr_El); + Elem := Get_Named_Entity (Get_Choice_Name (Aggr_El)); when others => Error_Kind ("translate_variable_rec_aggr", Aggr_El); end case; @@ -3158,7 +3158,7 @@ package body Trans.Chap8 is and then (Get_Kind (Base_Formal) = Iir_Kind_Interface_Variable_Declaration) then - Formal_Type := Get_Type (Get_Formal (El)); + Formal_Type := Get_Type (Get_Named_Entity (Get_Formal (El))); Ftype_Info := Get_Info (Formal_Type); pragma Assert (Get_Interface_Kind (Base_Formal) = Mode_Value); @@ -3817,7 +3817,7 @@ package body Trans.Chap8 is Element := Get_Nth_Element (El_List, El_Index); El_Index := El_Index + 1; when Iir_Kind_Choice_By_Name => - Element := Get_Choice_Name (Aggr_El); + Element := Get_Named_Entity (Get_Choice_Name (Aggr_El)); El_Index := Natural'Last; when others => Error_Kind ("translate_signal_target_record_aggr", Aggr_El); diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb index e3aad5f45..1dadfba4d 100644 --- a/src/vhdl/translate/trans-chap9.adb +++ b/src/vhdl/translate/trans-chap9.adb @@ -1154,7 +1154,8 @@ package body Trans.Chap9 is when Attr_None => Destroy_Types (Get_Iir (N, F)); when Attr_Ref - | Attr_Forward_Ref => + | Attr_Forward_Ref + | Attr_Maybe_Forward_Ref => null; when Attr_Maybe_Ref => if not Get_Is_Ref (N) then |