diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-10-23 18:22:02 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-10-23 18:22:02 +0200 |
commit | f16c8e7239d43f466a5f79bdff59824d2b037310 (patch) | |
tree | a1c0138d4fcb7cd47b44b89711419dd3413e8c5e /src/vhdl/elocations.adb | |
parent | 6b5e9d9b1b77c982607f5c71f54cfc1c35e8e262 (diff) | |
download | ghdl-f16c8e7239d43f466a5f79bdff59824d2b037310.tar.gz ghdl-f16c8e7239d43f466a5f79bdff59824d2b037310.tar.bz2 ghdl-f16c8e7239d43f466a5f79bdff59824d2b037310.zip |
Add more elocations.
Diffstat (limited to 'src/vhdl/elocations.adb')
-rw-r--r-- | src/vhdl/elocations.adb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/vhdl/elocations.adb b/src/vhdl/elocations.adb index a73ce1ca4..94b647c4b 100644 --- a/src/vhdl/elocations.adb +++ b/src/vhdl/elocations.adb @@ -225,7 +225,6 @@ package body Elocations is | Iir_Kind_Subtype_Definition | Iir_Kind_Scalar_Nature_Definition | Iir_Kind_Overload_List - | Iir_Kind_Anonymous_Type_Declaration | Iir_Kind_Nature_Declaration | Iir_Kind_Subnature_Declaration | Iir_Kind_Unit_Declaration @@ -302,12 +301,9 @@ package body Elocations is | Iir_Kind_Concurrent_Procedure_Call_Statement | Iir_Kind_Psl_Assert_Statement | Iir_Kind_Psl_Cover_Statement - | Iir_Kind_If_Generate_Statement | Iir_Kind_Case_Generate_Statement - | Iir_Kind_For_Generate_Statement | Iir_Kind_Psl_Default_Clock | Iir_Kind_Simple_Simultaneous_Statement - | Iir_Kind_If_Generate_Else_Clause | Iir_Kind_Simple_Signal_Assignment_Statement | Iir_Kind_Conditional_Signal_Assignment_Statement | Iir_Kind_Selected_Waveform_Assignment_Statement @@ -318,7 +314,6 @@ package body Elocations is | Iir_Kind_Variable_Assignment_Statement | Iir_Kind_Conditional_Variable_Assignment_Statement | Iir_Kind_Return_Statement - | Iir_Kind_While_Loop_Statement | Iir_Kind_Next_Statement | Iir_Kind_Exit_Statement | Iir_Kind_Procedure_Call_Statement @@ -379,6 +374,7 @@ package body Elocations is | Iir_Kind_Attribute_Name => return Format_None; when Iir_Kind_Library_Clause + | Iir_Kind_Anonymous_Type_Declaration | Iir_Kind_Attribute_Declaration | Iir_Kind_Group_Template_Declaration | Iir_Kind_Group_Declaration @@ -419,9 +415,13 @@ package body Elocations is | Iir_Kind_Sensitized_Process_Statement | Iir_Kind_Process_Statement | Iir_Kind_Block_Statement + | Iir_Kind_If_Generate_Statement + | Iir_Kind_For_Generate_Statement | Iir_Kind_Component_Instantiation_Statement | Iir_Kind_Generate_Statement_Body + | Iir_Kind_If_Generate_Else_Clause | Iir_Kind_For_Loop_Statement + | Iir_Kind_While_Loop_Statement | Iir_Kind_If_Statement | Iir_Kind_Elsif => return Format_L3; @@ -529,6 +529,22 @@ package body Elocations is Set_Field3 (N, Loc); end Set_Loop_Location; + function Get_Generate_Location (N : Iir) return Location_Type is + begin + pragma Assert (N /= Null_Iir); + pragma Assert (Has_Generate_Location (Get_Kind (N)), + "no field Generate_Location"); + return Get_Field3 (N); + end Get_Generate_Location; + + procedure Set_Generate_Location (N : Iir; Loc : Location_Type) is + begin + pragma Assert (N /= Null_Iir); + pragma Assert (Has_Generate_Location (Get_Kind (N)), + "no field Generate_Location"); + Set_Field3 (N, Loc); + end Set_Generate_Location; + function Get_Generic_Location (N : Iir) return Location_Type is begin pragma Assert (N /= Null_Iir); |