diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vhdl/translate/trans-chap9.adb | 19 | ||||
-rw-r--r-- | src/vhdl/vhdl-canon.adb | 1 | ||||
-rw-r--r-- | src/vhdl/vhdl-nodes.ads | 3 | ||||
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 199 | ||||
-rw-r--r-- | src/vhdl/vhdl-sem_stmts.adb | 1 |
5 files changed, 116 insertions, 107 deletions
diff --git a/src/vhdl/translate/trans-chap9.adb b/src/vhdl/translate/trans-chap9.adb index bea87eff6..b2f2cebba 100644 --- a/src/vhdl/translate/trans-chap9.adb +++ b/src/vhdl/translate/trans-chap9.adb @@ -1188,14 +1188,22 @@ package body Trans.Chap9 is Base_Info : constant Block_Info_Acc := Get_Info (Base_Block); Stmt : Iir; Mark : Id_Mark_Type; + Kind : Iir_Kind; begin Chap4.Translate_Declaration_Chain_Subprograms (Block, Subprg_Translate_Spec_And_Body); Stmt := Get_Concurrent_Statement_Chain (Block); while Stmt /= Null_Iir loop - Push_Identifier_Prefix (Mark, Get_Identifier (Stmt)); - case Get_Kind (Stmt) is + Kind := Get_Kind (Stmt); + case Kind is + when Iir_Kind_Psl_Default_Clock => + null; + when others => + Push_Identifier_Prefix (Mark, Get_Identifier (Stmt)); + end case; + + case Kind is when Iir_Kind_Process_Statement | Iir_Kind_Sensitized_Process_Statement => if Flag_Direct_Drivers then @@ -1281,7 +1289,12 @@ package body Trans.Chap9 is when others => Error_Kind ("translate_block_subprograms", Stmt); end case; - Pop_Identifier_Prefix (Mark); + case Kind is + when Iir_Kind_Psl_Default_Clock => + null; + when others => + Pop_Identifier_Prefix (Mark); + end case; Stmt := Get_Chain (Stmt); end loop; end Translate_Block_Subprograms; diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb index 6d4e982cb..d5acdf171 100644 --- a/src/vhdl/vhdl-canon.adb +++ b/src/vhdl/vhdl-canon.adb @@ -1926,6 +1926,7 @@ package body Vhdl.Canon is if Canon_Flag_Add_Labels then case Get_Kind (Stmt) is when Iir_Kind_Psl_Declaration + | Iir_Kind_Psl_Default_Clock | Iir_Kind_Psl_Endpoint_Declaration => null; when others => diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index 017e58929..71ede45f0 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -3336,9 +3336,6 @@ package Vhdl.Nodes is -- Get/Set_Psl_Boolean (Field1) -- -- Get/Set_Chain (Field2) - -- - -- Get/Set_Label (Field3) - -- Get/Set_Identifier (Alias Field3) -- Iir_Kind_Psl_Assert_Directive (Medium) -- Iir_Kind_Psl_Assume_Directive (Medium) diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 91f764376..25f1dc86c 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -4490,7 +4490,6 @@ package body Vhdl.Nodes_Meta is Field_Component_Configuration, -- Iir_Kind_Psl_Default_Clock Field_Psl_Boolean, - Field_Label, Field_Parent, Field_Chain, -- Iir_Kind_Generate_Statement_Body @@ -5455,104 +5454,104 @@ package body Vhdl.Nodes_Meta is Iir_Kind_Case_Generate_Statement => 1717, Iir_Kind_For_Generate_Statement => 1726, Iir_Kind_Component_Instantiation_Statement => 1737, - Iir_Kind_Psl_Default_Clock => 1741, - Iir_Kind_Generate_Statement_Body => 1752, - Iir_Kind_If_Generate_Else_Clause => 1758, - Iir_Kind_Simple_Simultaneous_Statement => 1765, - Iir_Kind_Simultaneous_Null_Statement => 1769, - Iir_Kind_Simultaneous_Procedural_Statement => 1780, - Iir_Kind_Simultaneous_Case_Statement => 1789, - Iir_Kind_Simultaneous_If_Statement => 1798, - Iir_Kind_Simultaneous_Elsif => 1804, - Iir_Kind_Simple_Signal_Assignment_Statement => 1815, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1826, - Iir_Kind_Selected_Waveform_Assignment_Statement => 1838, - Iir_Kind_Signal_Force_Assignment_Statement => 1848, - Iir_Kind_Signal_Release_Assignment_Statement => 1857, - Iir_Kind_Null_Statement => 1861, - Iir_Kind_Assertion_Statement => 1868, - Iir_Kind_Report_Statement => 1874, - Iir_Kind_Wait_Statement => 1882, - Iir_Kind_Variable_Assignment_Statement => 1889, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1896, - Iir_Kind_Return_Statement => 1902, - Iir_Kind_For_Loop_Statement => 1913, - Iir_Kind_While_Loop_Statement => 1924, - Iir_Kind_Next_Statement => 1931, - Iir_Kind_Exit_Statement => 1938, - Iir_Kind_Case_Statement => 1946, - Iir_Kind_Procedure_Call_Statement => 1952, - Iir_Kind_Break_Statement => 1959, - Iir_Kind_If_Statement => 1969, - Iir_Kind_Elsif => 1975, - Iir_Kind_Character_Literal => 1982, - Iir_Kind_Simple_Name => 1989, - Iir_Kind_Selected_Name => 1997, - Iir_Kind_Operator_Symbol => 2002, - Iir_Kind_Reference_Name => 2007, - Iir_Kind_External_Constant_Name => 2016, - Iir_Kind_External_Signal_Name => 2025, - Iir_Kind_External_Variable_Name => 2035, - Iir_Kind_Selected_By_All_Name => 2041, - Iir_Kind_Parenthesis_Name => 2046, - Iir_Kind_Package_Pathname => 2050, - Iir_Kind_Absolute_Pathname => 2051, - Iir_Kind_Relative_Pathname => 2052, - Iir_Kind_Pathname_Element => 2057, - Iir_Kind_Base_Attribute => 2059, - Iir_Kind_Subtype_Attribute => 2064, - Iir_Kind_Element_Attribute => 2069, - Iir_Kind_Across_Attribute => 2074, - Iir_Kind_Through_Attribute => 2079, - Iir_Kind_Nature_Reference_Attribute => 2083, - Iir_Kind_Left_Type_Attribute => 2088, - Iir_Kind_Right_Type_Attribute => 2093, - Iir_Kind_High_Type_Attribute => 2098, - Iir_Kind_Low_Type_Attribute => 2103, - Iir_Kind_Ascending_Type_Attribute => 2108, - Iir_Kind_Image_Attribute => 2114, - Iir_Kind_Value_Attribute => 2120, - Iir_Kind_Pos_Attribute => 2126, - Iir_Kind_Val_Attribute => 2132, - Iir_Kind_Succ_Attribute => 2138, - Iir_Kind_Pred_Attribute => 2144, - Iir_Kind_Leftof_Attribute => 2150, - Iir_Kind_Rightof_Attribute => 2156, - Iir_Kind_Signal_Slew_Attribute => 2164, - Iir_Kind_Quantity_Slew_Attribute => 2172, - Iir_Kind_Ramp_Attribute => 2180, - Iir_Kind_Zoh_Attribute => 2188, - Iir_Kind_Ltf_Attribute => 2196, - Iir_Kind_Ztf_Attribute => 2206, - Iir_Kind_Dot_Attribute => 2213, - Iir_Kind_Integ_Attribute => 2220, - Iir_Kind_Above_Attribute => 2228, - Iir_Kind_Quantity_Delayed_Attribute => 2236, - Iir_Kind_Delayed_Attribute => 2245, - Iir_Kind_Stable_Attribute => 2254, - Iir_Kind_Quiet_Attribute => 2263, - Iir_Kind_Transaction_Attribute => 2272, - Iir_Kind_Event_Attribute => 2276, - Iir_Kind_Active_Attribute => 2280, - Iir_Kind_Last_Event_Attribute => 2284, - Iir_Kind_Last_Active_Attribute => 2288, - Iir_Kind_Last_Value_Attribute => 2292, - Iir_Kind_Driving_Attribute => 2296, - Iir_Kind_Driving_Value_Attribute => 2300, - Iir_Kind_Behavior_Attribute => 2300, - Iir_Kind_Structure_Attribute => 2300, - Iir_Kind_Simple_Name_Attribute => 2307, - Iir_Kind_Instance_Name_Attribute => 2312, - Iir_Kind_Path_Name_Attribute => 2317, - Iir_Kind_Left_Array_Attribute => 2324, - Iir_Kind_Right_Array_Attribute => 2331, - Iir_Kind_High_Array_Attribute => 2338, - Iir_Kind_Low_Array_Attribute => 2345, - Iir_Kind_Length_Array_Attribute => 2352, - Iir_Kind_Ascending_Array_Attribute => 2359, - Iir_Kind_Range_Array_Attribute => 2366, - Iir_Kind_Reverse_Range_Array_Attribute => 2373, - Iir_Kind_Attribute_Name => 2382 + Iir_Kind_Psl_Default_Clock => 1740, + Iir_Kind_Generate_Statement_Body => 1751, + Iir_Kind_If_Generate_Else_Clause => 1757, + Iir_Kind_Simple_Simultaneous_Statement => 1764, + Iir_Kind_Simultaneous_Null_Statement => 1768, + Iir_Kind_Simultaneous_Procedural_Statement => 1779, + Iir_Kind_Simultaneous_Case_Statement => 1788, + Iir_Kind_Simultaneous_If_Statement => 1797, + Iir_Kind_Simultaneous_Elsif => 1803, + Iir_Kind_Simple_Signal_Assignment_Statement => 1814, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1825, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1837, + Iir_Kind_Signal_Force_Assignment_Statement => 1847, + Iir_Kind_Signal_Release_Assignment_Statement => 1856, + Iir_Kind_Null_Statement => 1860, + Iir_Kind_Assertion_Statement => 1867, + Iir_Kind_Report_Statement => 1873, + Iir_Kind_Wait_Statement => 1881, + Iir_Kind_Variable_Assignment_Statement => 1888, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1895, + Iir_Kind_Return_Statement => 1901, + Iir_Kind_For_Loop_Statement => 1912, + Iir_Kind_While_Loop_Statement => 1923, + Iir_Kind_Next_Statement => 1930, + Iir_Kind_Exit_Statement => 1937, + Iir_Kind_Case_Statement => 1945, + Iir_Kind_Procedure_Call_Statement => 1951, + Iir_Kind_Break_Statement => 1958, + Iir_Kind_If_Statement => 1968, + Iir_Kind_Elsif => 1974, + Iir_Kind_Character_Literal => 1981, + Iir_Kind_Simple_Name => 1988, + Iir_Kind_Selected_Name => 1996, + Iir_Kind_Operator_Symbol => 2001, + Iir_Kind_Reference_Name => 2006, + Iir_Kind_External_Constant_Name => 2015, + Iir_Kind_External_Signal_Name => 2024, + Iir_Kind_External_Variable_Name => 2034, + Iir_Kind_Selected_By_All_Name => 2040, + Iir_Kind_Parenthesis_Name => 2045, + Iir_Kind_Package_Pathname => 2049, + Iir_Kind_Absolute_Pathname => 2050, + Iir_Kind_Relative_Pathname => 2051, + Iir_Kind_Pathname_Element => 2056, + Iir_Kind_Base_Attribute => 2058, + Iir_Kind_Subtype_Attribute => 2063, + Iir_Kind_Element_Attribute => 2068, + Iir_Kind_Across_Attribute => 2073, + Iir_Kind_Through_Attribute => 2078, + Iir_Kind_Nature_Reference_Attribute => 2082, + Iir_Kind_Left_Type_Attribute => 2087, + Iir_Kind_Right_Type_Attribute => 2092, + Iir_Kind_High_Type_Attribute => 2097, + Iir_Kind_Low_Type_Attribute => 2102, + Iir_Kind_Ascending_Type_Attribute => 2107, + Iir_Kind_Image_Attribute => 2113, + Iir_Kind_Value_Attribute => 2119, + Iir_Kind_Pos_Attribute => 2125, + Iir_Kind_Val_Attribute => 2131, + Iir_Kind_Succ_Attribute => 2137, + Iir_Kind_Pred_Attribute => 2143, + Iir_Kind_Leftof_Attribute => 2149, + Iir_Kind_Rightof_Attribute => 2155, + Iir_Kind_Signal_Slew_Attribute => 2163, + Iir_Kind_Quantity_Slew_Attribute => 2171, + Iir_Kind_Ramp_Attribute => 2179, + Iir_Kind_Zoh_Attribute => 2187, + Iir_Kind_Ltf_Attribute => 2195, + Iir_Kind_Ztf_Attribute => 2205, + Iir_Kind_Dot_Attribute => 2212, + Iir_Kind_Integ_Attribute => 2219, + Iir_Kind_Above_Attribute => 2227, + Iir_Kind_Quantity_Delayed_Attribute => 2235, + Iir_Kind_Delayed_Attribute => 2244, + Iir_Kind_Stable_Attribute => 2253, + Iir_Kind_Quiet_Attribute => 2262, + Iir_Kind_Transaction_Attribute => 2271, + Iir_Kind_Event_Attribute => 2275, + Iir_Kind_Active_Attribute => 2279, + Iir_Kind_Last_Event_Attribute => 2283, + Iir_Kind_Last_Active_Attribute => 2287, + Iir_Kind_Last_Value_Attribute => 2291, + Iir_Kind_Driving_Attribute => 2295, + Iir_Kind_Driving_Value_Attribute => 2299, + Iir_Kind_Behavior_Attribute => 2299, + Iir_Kind_Structure_Attribute => 2299, + Iir_Kind_Simple_Name_Attribute => 2306, + Iir_Kind_Instance_Name_Attribute => 2311, + Iir_Kind_Path_Name_Attribute => 2316, + Iir_Kind_Left_Array_Attribute => 2323, + Iir_Kind_Right_Array_Attribute => 2330, + Iir_Kind_High_Array_Attribute => 2337, + Iir_Kind_Low_Array_Attribute => 2344, + Iir_Kind_Length_Array_Attribute => 2351, + Iir_Kind_Ascending_Array_Attribute => 2358, + Iir_Kind_Range_Array_Attribute => 2365, + Iir_Kind_Reverse_Range_Array_Attribute => 2372, + Iir_Kind_Attribute_Name => 2381 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -9457,7 +9456,6 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Case_Generate_Statement | Iir_Kind_For_Generate_Statement | Iir_Kind_Component_Instantiation_Statement - | Iir_Kind_Psl_Default_Clock | Iir_Kind_Generate_Statement_Body | Iir_Kind_Simple_Simultaneous_Statement | Iir_Kind_Simultaneous_Null_Statement @@ -9517,7 +9515,6 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Case_Generate_Statement | Iir_Kind_For_Generate_Statement | Iir_Kind_Component_Instantiation_Statement - | Iir_Kind_Psl_Default_Clock | Iir_Kind_Simple_Simultaneous_Statement | Iir_Kind_Simultaneous_Null_Statement | Iir_Kind_Simultaneous_Procedural_Statement diff --git a/src/vhdl/vhdl-sem_stmts.adb b/src/vhdl/vhdl-sem_stmts.adb index f9290c61c..b75202d90 100644 --- a/src/vhdl/vhdl-sem_stmts.adb +++ b/src/vhdl/vhdl-sem_stmts.adb @@ -2570,6 +2570,7 @@ package body Vhdl.Sem_Stmts is case Get_Kind (Stmt) is when Iir_Kind_Psl_Declaration + | Iir_Kind_Psl_Default_Clock | Iir_Kind_Psl_Endpoint_Declaration => -- Special case for in-lined PSL declarations. null; |