diff options
| author | Tristan Gingold <tgingold@free.fr> | 2022-06-12 17:03:13 +0200 | 
|---|---|---|
| committer | Tristan Gingold <tgingold@free.fr> | 2022-06-12 17:03:13 +0200 | 
| commit | 39f9cbfc14a3d90cd76ab8288136de2d79bbe640 (patch) | |
| tree | f3b9191826b1fc4303292fe24af02779e177942c /src | |
| parent | 02eb84e95b6830c31e738baf85acadddcf3a3674 (diff) | |
| download | ghdl-39f9cbfc14a3d90cd76ab8288136de2d79bbe640.tar.gz ghdl-39f9cbfc14a3d90cd76ab8288136de2d79bbe640.tar.bz2 ghdl-39f9cbfc14a3d90cd76ab8288136de2d79bbe640.zip  | |
vhdl: add a parent field to protected_type_declaration.  Fix #2091
Diffstat (limited to 'src')
| -rw-r--r-- | src/vhdl/vhdl-nodes.ads | 3 | ||||
| -rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 528 | ||||
| -rw-r--r-- | src/vhdl/vhdl-sem_types.adb | 5 | 
3 files changed, 271 insertions, 265 deletions
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index 333dcf6c8..440001102 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -2709,6 +2709,9 @@ package Vhdl.Nodes is     --   Get/Set_Has_Signal_Flag (Flag3)     -- Iir_Kind_Protected_Type_Declaration (Short) +   --  The parent of a protected type declarationi s the same parent as the +   --  type declaration. +   --   Get/Set_Parent (Field0)     --     --   Get/Set_Declaration_Chain (Field1)     -- diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index ff3bc6fcf..3c6bb2ef5 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -2953,6 +2953,7 @@ package body Vhdl.Nodes_Meta is        Field_End_Has_Reserved_Id,        Field_End_Has_Identifier,        Field_Type_Staticness, +      Field_Parent,        Field_Declaration_Chain,        Field_Protected_Type_Body,        Field_Type_Declarator, @@ -5348,269 +5349,269 @@ package body Vhdl.Nodes_Meta is        Iir_Kind_Incomplete_Type_Definition => 307,        Iir_Kind_Interface_Type_Definition => 313,        Iir_Kind_File_Type_Definition => 319, -      Iir_Kind_Protected_Type_Declaration => 328, -      Iir_Kind_Record_Type_Definition => 338, -      Iir_Kind_Array_Type_Definition => 349, -      Iir_Kind_Array_Subtype_Definition => 366, -      Iir_Kind_Record_Subtype_Definition => 379, -      Iir_Kind_Access_Subtype_Definition => 387, -      Iir_Kind_Physical_Subtype_Definition => 397, -      Iir_Kind_Floating_Subtype_Definition => 408, -      Iir_Kind_Integer_Subtype_Definition => 418, -      Iir_Kind_Enumeration_Subtype_Definition => 428, -      Iir_Kind_Enumeration_Type_Definition => 439, -      Iir_Kind_Integer_Type_Definition => 447, -      Iir_Kind_Floating_Type_Definition => 455, -      Iir_Kind_Physical_Type_Definition => 466, -      Iir_Kind_Range_Expression => 474, -      Iir_Kind_Protected_Type_Body => 482, -      Iir_Kind_Wildcard_Type_Definition => 486, -      Iir_Kind_Foreign_Vector_Type_Definition => 487, -      Iir_Kind_Subtype_Definition => 494, -      Iir_Kind_Scalar_Nature_Definition => 502, -      Iir_Kind_Record_Nature_Definition => 515, -      Iir_Kind_Array_Nature_Definition => 529, -      Iir_Kind_Array_Subnature_Definition => 544, -      Iir_Kind_Overload_List => 545, -      Iir_Kind_Foreign_Module => 550, -      Iir_Kind_Entity_Declaration => 563, -      Iir_Kind_Configuration_Declaration => 573, -      Iir_Kind_Context_Declaration => 579, -      Iir_Kind_Package_Declaration => 594, -      Iir_Kind_Package_Instantiation_Declaration => 608, -      Iir_Kind_Vmode_Declaration => 620, -      Iir_Kind_Vprop_Declaration => 632, -      Iir_Kind_Vunit_Declaration => 645, -      Iir_Kind_Package_Body => 653, -      Iir_Kind_Architecture_Body => 666, -      Iir_Kind_Type_Declaration => 673, -      Iir_Kind_Anonymous_Type_Declaration => 679, -      Iir_Kind_Subtype_Declaration => 687, -      Iir_Kind_Nature_Declaration => 693, -      Iir_Kind_Subnature_Declaration => 700, -      Iir_Kind_Package_Header => 702, -      Iir_Kind_Unit_Declaration => 711, -      Iir_Kind_Library_Declaration => 719, -      Iir_Kind_Component_Declaration => 729, -      Iir_Kind_Attribute_Declaration => 736, -      Iir_Kind_Group_Template_Declaration => 742, -      Iir_Kind_Group_Declaration => 749, -      Iir_Kind_Element_Declaration => 757, -      Iir_Kind_Nature_Element_Declaration => 764, -      Iir_Kind_Non_Object_Alias_Declaration => 772, -      Iir_Kind_Psl_Declaration => 780, -      Iir_Kind_Psl_Endpoint_Declaration => 794, -      Iir_Kind_Enumeration_Literal => 806, -      Iir_Kind_Function_Declaration => 832, -      Iir_Kind_Procedure_Declaration => 855, -      Iir_Kind_Function_Body => 865, -      Iir_Kind_Procedure_Body => 876, -      Iir_Kind_Function_Instantiation_Declaration => 887, -      Iir_Kind_Procedure_Instantiation_Declaration => 897, -      Iir_Kind_Terminal_Declaration => 906, -      Iir_Kind_Object_Alias_Declaration => 918, -      Iir_Kind_Free_Quantity_Declaration => 930, -      Iir_Kind_Spectrum_Quantity_Declaration => 943, -      Iir_Kind_Noise_Quantity_Declaration => 955, -      Iir_Kind_Across_Quantity_Declaration => 971, -      Iir_Kind_Through_Quantity_Declaration => 987, -      Iir_Kind_File_Declaration => 1002, -      Iir_Kind_Guard_Signal_Declaration => 1016, -      Iir_Kind_Signal_Declaration => 1033, -      Iir_Kind_Variable_Declaration => 1046, -      Iir_Kind_Constant_Declaration => 1060, -      Iir_Kind_Iterator_Declaration => 1072, -      Iir_Kind_Interface_Constant_Declaration => 1089, -      Iir_Kind_Interface_Variable_Declaration => 1105, -      Iir_Kind_Interface_Signal_Declaration => 1126, -      Iir_Kind_Interface_File_Declaration => 1142, -      Iir_Kind_Interface_Quantity_Declaration => 1158, -      Iir_Kind_Interface_Terminal_Declaration => 1170, -      Iir_Kind_Interface_Type_Declaration => 1181, -      Iir_Kind_Interface_Package_Declaration => 1194, -      Iir_Kind_Interface_Function_Declaration => 1212, -      Iir_Kind_Interface_Procedure_Declaration => 1226, -      Iir_Kind_Signal_Attribute_Declaration => 1229, -      Iir_Kind_Suspend_State_Declaration => 1232, -      Iir_Kind_Identity_Operator => 1236, -      Iir_Kind_Negation_Operator => 1240, -      Iir_Kind_Absolute_Operator => 1244, -      Iir_Kind_Not_Operator => 1248, -      Iir_Kind_Implicit_Condition_Operator => 1252, -      Iir_Kind_Condition_Operator => 1256, -      Iir_Kind_Reduction_And_Operator => 1260, -      Iir_Kind_Reduction_Or_Operator => 1264, -      Iir_Kind_Reduction_Nand_Operator => 1268, -      Iir_Kind_Reduction_Nor_Operator => 1272, -      Iir_Kind_Reduction_Xor_Operator => 1276, -      Iir_Kind_Reduction_Xnor_Operator => 1280, -      Iir_Kind_And_Operator => 1285, -      Iir_Kind_Or_Operator => 1290, -      Iir_Kind_Nand_Operator => 1295, -      Iir_Kind_Nor_Operator => 1300, -      Iir_Kind_Xor_Operator => 1305, -      Iir_Kind_Xnor_Operator => 1310, -      Iir_Kind_Equality_Operator => 1315, -      Iir_Kind_Inequality_Operator => 1320, -      Iir_Kind_Less_Than_Operator => 1325, -      Iir_Kind_Less_Than_Or_Equal_Operator => 1330, -      Iir_Kind_Greater_Than_Operator => 1335, -      Iir_Kind_Greater_Than_Or_Equal_Operator => 1340, -      Iir_Kind_Match_Equality_Operator => 1345, -      Iir_Kind_Match_Inequality_Operator => 1350, -      Iir_Kind_Match_Less_Than_Operator => 1355, -      Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1360, -      Iir_Kind_Match_Greater_Than_Operator => 1365, -      Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1370, -      Iir_Kind_Sll_Operator => 1375, -      Iir_Kind_Sla_Operator => 1380, -      Iir_Kind_Srl_Operator => 1385, -      Iir_Kind_Sra_Operator => 1390, -      Iir_Kind_Rol_Operator => 1395, -      Iir_Kind_Ror_Operator => 1400, -      Iir_Kind_Addition_Operator => 1405, -      Iir_Kind_Substraction_Operator => 1410, -      Iir_Kind_Concatenation_Operator => 1415, -      Iir_Kind_Multiplication_Operator => 1420, -      Iir_Kind_Division_Operator => 1425, -      Iir_Kind_Modulus_Operator => 1430, -      Iir_Kind_Remainder_Operator => 1435, -      Iir_Kind_Exponentiation_Operator => 1440, -      Iir_Kind_Function_Call => 1448, -      Iir_Kind_Aggregate => 1455, -      Iir_Kind_Parenthesis_Expression => 1458, -      Iir_Kind_Qualified_Expression => 1462, -      Iir_Kind_Type_Conversion => 1467, -      Iir_Kind_Allocator_By_Expression => 1472, -      Iir_Kind_Allocator_By_Subtype => 1478, -      Iir_Kind_Selected_Element => 1486, -      Iir_Kind_Dereference => 1491, -      Iir_Kind_Implicit_Dereference => 1496, -      Iir_Kind_Slice_Name => 1503, -      Iir_Kind_Indexed_Name => 1509, -      Iir_Kind_Psl_Prev => 1515, -      Iir_Kind_Psl_Stable => 1520, -      Iir_Kind_Psl_Rose => 1525, -      Iir_Kind_Psl_Fell => 1530, -      Iir_Kind_Psl_Onehot => 1533, -      Iir_Kind_Psl_Onehot0 => 1536, -      Iir_Kind_Psl_Expression => 1538, -      Iir_Kind_Sensitized_Process_Statement => 1559, -      Iir_Kind_Process_Statement => 1579, -      Iir_Kind_Concurrent_Simple_Signal_Assignment => 1592, -      Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1605, -      Iir_Kind_Concurrent_Selected_Signal_Assignment => 1619, -      Iir_Kind_Concurrent_Assertion_Statement => 1627, -      Iir_Kind_Concurrent_Procedure_Call_Statement => 1634, -      Iir_Kind_Concurrent_Break_Statement => 1642, -      Iir_Kind_Psl_Assert_Directive => 1656, -      Iir_Kind_Psl_Assume_Directive => 1668, -      Iir_Kind_Psl_Cover_Directive => 1680, -      Iir_Kind_Psl_Restrict_Directive => 1691, -      Iir_Kind_Block_Statement => 1705, -      Iir_Kind_If_Generate_Statement => 1716, -      Iir_Kind_Case_Generate_Statement => 1725, -      Iir_Kind_For_Generate_Statement => 1734, -      Iir_Kind_Component_Instantiation_Statement => 1745, -      Iir_Kind_Psl_Default_Clock => 1748, -      Iir_Kind_Generate_Statement_Body => 1759, -      Iir_Kind_If_Generate_Else_Clause => 1765, -      Iir_Kind_Simple_Simultaneous_Statement => 1772, -      Iir_Kind_Simultaneous_Null_Statement => 1776, -      Iir_Kind_Simultaneous_Procedural_Statement => 1787, -      Iir_Kind_Simultaneous_Case_Statement => 1796, -      Iir_Kind_Simultaneous_If_Statement => 1805, -      Iir_Kind_Simultaneous_Elsif => 1811, -      Iir_Kind_Simple_Signal_Assignment_Statement => 1822, -      Iir_Kind_Conditional_Signal_Assignment_Statement => 1833, -      Iir_Kind_Selected_Waveform_Assignment_Statement => 1845, -      Iir_Kind_Signal_Force_Assignment_Statement => 1855, -      Iir_Kind_Signal_Release_Assignment_Statement => 1864, -      Iir_Kind_Null_Statement => 1868, -      Iir_Kind_Assertion_Statement => 1875, -      Iir_Kind_Report_Statement => 1881, -      Iir_Kind_Wait_Statement => 1889, -      Iir_Kind_Variable_Assignment_Statement => 1896, -      Iir_Kind_Conditional_Variable_Assignment_Statement => 1903, -      Iir_Kind_Return_Statement => 1909, -      Iir_Kind_For_Loop_Statement => 1920, -      Iir_Kind_While_Loop_Statement => 1931, -      Iir_Kind_Next_Statement => 1938, -      Iir_Kind_Exit_Statement => 1945, -      Iir_Kind_Case_Statement => 1954, -      Iir_Kind_Procedure_Call_Statement => 1960, -      Iir_Kind_Break_Statement => 1967, -      Iir_Kind_If_Statement => 1977, -      Iir_Kind_Suspend_State_Statement => 1981, -      Iir_Kind_Elsif => 1987, -      Iir_Kind_Character_Literal => 1994, -      Iir_Kind_Simple_Name => 2001, -      Iir_Kind_Selected_Name => 2009, -      Iir_Kind_Operator_Symbol => 2014, -      Iir_Kind_Reference_Name => 2019, -      Iir_Kind_External_Constant_Name => 2028, -      Iir_Kind_External_Signal_Name => 2037, -      Iir_Kind_External_Variable_Name => 2047, -      Iir_Kind_Selected_By_All_Name => 2053, -      Iir_Kind_Parenthesis_Name => 2058, -      Iir_Kind_Package_Pathname => 2062, -      Iir_Kind_Absolute_Pathname => 2063, -      Iir_Kind_Relative_Pathname => 2064, -      Iir_Kind_Pathname_Element => 2069, -      Iir_Kind_Base_Attribute => 2071, -      Iir_Kind_Subtype_Attribute => 2076, -      Iir_Kind_Element_Attribute => 2081, -      Iir_Kind_Across_Attribute => 2086, -      Iir_Kind_Through_Attribute => 2091, -      Iir_Kind_Nature_Reference_Attribute => 2095, -      Iir_Kind_Left_Type_Attribute => 2100, -      Iir_Kind_Right_Type_Attribute => 2105, -      Iir_Kind_High_Type_Attribute => 2110, -      Iir_Kind_Low_Type_Attribute => 2115, -      Iir_Kind_Ascending_Type_Attribute => 2120, -      Iir_Kind_Image_Attribute => 2126, -      Iir_Kind_Value_Attribute => 2132, -      Iir_Kind_Pos_Attribute => 2138, -      Iir_Kind_Val_Attribute => 2144, -      Iir_Kind_Succ_Attribute => 2150, -      Iir_Kind_Pred_Attribute => 2156, -      Iir_Kind_Leftof_Attribute => 2162, -      Iir_Kind_Rightof_Attribute => 2168, -      Iir_Kind_Signal_Slew_Attribute => 2176, -      Iir_Kind_Quantity_Slew_Attribute => 2184, -      Iir_Kind_Ramp_Attribute => 2192, -      Iir_Kind_Zoh_Attribute => 2200, -      Iir_Kind_Ltf_Attribute => 2208, -      Iir_Kind_Ztf_Attribute => 2218, -      Iir_Kind_Dot_Attribute => 2225, -      Iir_Kind_Integ_Attribute => 2232, -      Iir_Kind_Above_Attribute => 2240, -      Iir_Kind_Quantity_Delayed_Attribute => 2248, -      Iir_Kind_Delayed_Attribute => 2257, -      Iir_Kind_Stable_Attribute => 2266, -      Iir_Kind_Quiet_Attribute => 2275, -      Iir_Kind_Transaction_Attribute => 2284, -      Iir_Kind_Event_Attribute => 2288, -      Iir_Kind_Active_Attribute => 2292, -      Iir_Kind_Last_Event_Attribute => 2296, -      Iir_Kind_Last_Active_Attribute => 2300, -      Iir_Kind_Last_Value_Attribute => 2304, -      Iir_Kind_Driving_Attribute => 2308, -      Iir_Kind_Driving_Value_Attribute => 2312, -      Iir_Kind_Behavior_Attribute => 2312, -      Iir_Kind_Structure_Attribute => 2312, -      Iir_Kind_Simple_Name_Attribute => 2319, -      Iir_Kind_Instance_Name_Attribute => 2324, -      Iir_Kind_Path_Name_Attribute => 2329, -      Iir_Kind_Left_Array_Attribute => 2336, -      Iir_Kind_Right_Array_Attribute => 2343, -      Iir_Kind_High_Array_Attribute => 2350, -      Iir_Kind_Low_Array_Attribute => 2357, -      Iir_Kind_Length_Array_Attribute => 2364, -      Iir_Kind_Ascending_Array_Attribute => 2371, -      Iir_Kind_Range_Array_Attribute => 2378, -      Iir_Kind_Reverse_Range_Array_Attribute => 2385, -      Iir_Kind_Attribute_Name => 2394 +      Iir_Kind_Protected_Type_Declaration => 329, +      Iir_Kind_Record_Type_Definition => 339, +      Iir_Kind_Array_Type_Definition => 350, +      Iir_Kind_Array_Subtype_Definition => 367, +      Iir_Kind_Record_Subtype_Definition => 380, +      Iir_Kind_Access_Subtype_Definition => 388, +      Iir_Kind_Physical_Subtype_Definition => 398, +      Iir_Kind_Floating_Subtype_Definition => 409, +      Iir_Kind_Integer_Subtype_Definition => 419, +      Iir_Kind_Enumeration_Subtype_Definition => 429, +      Iir_Kind_Enumeration_Type_Definition => 440, +      Iir_Kind_Integer_Type_Definition => 448, +      Iir_Kind_Floating_Type_Definition => 456, +      Iir_Kind_Physical_Type_Definition => 467, +      Iir_Kind_Range_Expression => 475, +      Iir_Kind_Protected_Type_Body => 483, +      Iir_Kind_Wildcard_Type_Definition => 487, +      Iir_Kind_Foreign_Vector_Type_Definition => 488, +      Iir_Kind_Subtype_Definition => 495, +      Iir_Kind_Scalar_Nature_Definition => 503, +      Iir_Kind_Record_Nature_Definition => 516, +      Iir_Kind_Array_Nature_Definition => 530, +      Iir_Kind_Array_Subnature_Definition => 545, +      Iir_Kind_Overload_List => 546, +      Iir_Kind_Foreign_Module => 551, +      Iir_Kind_Entity_Declaration => 564, +      Iir_Kind_Configuration_Declaration => 574, +      Iir_Kind_Context_Declaration => 580, +      Iir_Kind_Package_Declaration => 595, +      Iir_Kind_Package_Instantiation_Declaration => 609, +      Iir_Kind_Vmode_Declaration => 621, +      Iir_Kind_Vprop_Declaration => 633, +      Iir_Kind_Vunit_Declaration => 646, +      Iir_Kind_Package_Body => 654, +      Iir_Kind_Architecture_Body => 667, +      Iir_Kind_Type_Declaration => 674, +      Iir_Kind_Anonymous_Type_Declaration => 680, +      Iir_Kind_Subtype_Declaration => 688, +      Iir_Kind_Nature_Declaration => 694, +      Iir_Kind_Subnature_Declaration => 701, +      Iir_Kind_Package_Header => 703, +      Iir_Kind_Unit_Declaration => 712, +      Iir_Kind_Library_Declaration => 720, +      Iir_Kind_Component_Declaration => 730, +      Iir_Kind_Attribute_Declaration => 737, +      Iir_Kind_Group_Template_Declaration => 743, +      Iir_Kind_Group_Declaration => 750, +      Iir_Kind_Element_Declaration => 758, +      Iir_Kind_Nature_Element_Declaration => 765, +      Iir_Kind_Non_Object_Alias_Declaration => 773, +      Iir_Kind_Psl_Declaration => 781, +      Iir_Kind_Psl_Endpoint_Declaration => 795, +      Iir_Kind_Enumeration_Literal => 807, +      Iir_Kind_Function_Declaration => 833, +      Iir_Kind_Procedure_Declaration => 856, +      Iir_Kind_Function_Body => 866, +      Iir_Kind_Procedure_Body => 877, +      Iir_Kind_Function_Instantiation_Declaration => 888, +      Iir_Kind_Procedure_Instantiation_Declaration => 898, +      Iir_Kind_Terminal_Declaration => 907, +      Iir_Kind_Object_Alias_Declaration => 919, +      Iir_Kind_Free_Quantity_Declaration => 931, +      Iir_Kind_Spectrum_Quantity_Declaration => 944, +      Iir_Kind_Noise_Quantity_Declaration => 956, +      Iir_Kind_Across_Quantity_Declaration => 972, +      Iir_Kind_Through_Quantity_Declaration => 988, +      Iir_Kind_File_Declaration => 1003, +      Iir_Kind_Guard_Signal_Declaration => 1017, +      Iir_Kind_Signal_Declaration => 1034, +      Iir_Kind_Variable_Declaration => 1047, +      Iir_Kind_Constant_Declaration => 1061, +      Iir_Kind_Iterator_Declaration => 1073, +      Iir_Kind_Interface_Constant_Declaration => 1090, +      Iir_Kind_Interface_Variable_Declaration => 1106, +      Iir_Kind_Interface_Signal_Declaration => 1127, +      Iir_Kind_Interface_File_Declaration => 1143, +      Iir_Kind_Interface_Quantity_Declaration => 1159, +      Iir_Kind_Interface_Terminal_Declaration => 1171, +      Iir_Kind_Interface_Type_Declaration => 1182, +      Iir_Kind_Interface_Package_Declaration => 1195, +      Iir_Kind_Interface_Function_Declaration => 1213, +      Iir_Kind_Interface_Procedure_Declaration => 1227, +      Iir_Kind_Signal_Attribute_Declaration => 1230, +      Iir_Kind_Suspend_State_Declaration => 1233, +      Iir_Kind_Identity_Operator => 1237, +      Iir_Kind_Negation_Operator => 1241, +      Iir_Kind_Absolute_Operator => 1245, +      Iir_Kind_Not_Operator => 1249, +      Iir_Kind_Implicit_Condition_Operator => 1253, +      Iir_Kind_Condition_Operator => 1257, +      Iir_Kind_Reduction_And_Operator => 1261, +      Iir_Kind_Reduction_Or_Operator => 1265, +      Iir_Kind_Reduction_Nand_Operator => 1269, +      Iir_Kind_Reduction_Nor_Operator => 1273, +      Iir_Kind_Reduction_Xor_Operator => 1277, +      Iir_Kind_Reduction_Xnor_Operator => 1281, +      Iir_Kind_And_Operator => 1286, +      Iir_Kind_Or_Operator => 1291, +      Iir_Kind_Nand_Operator => 1296, +      Iir_Kind_Nor_Operator => 1301, +      Iir_Kind_Xor_Operator => 1306, +      Iir_Kind_Xnor_Operator => 1311, +      Iir_Kind_Equality_Operator => 1316, +      Iir_Kind_Inequality_Operator => 1321, +      Iir_Kind_Less_Than_Operator => 1326, +      Iir_Kind_Less_Than_Or_Equal_Operator => 1331, +      Iir_Kind_Greater_Than_Operator => 1336, +      Iir_Kind_Greater_Than_Or_Equal_Operator => 1341, +      Iir_Kind_Match_Equality_Operator => 1346, +      Iir_Kind_Match_Inequality_Operator => 1351, +      Iir_Kind_Match_Less_Than_Operator => 1356, +      Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1361, +      Iir_Kind_Match_Greater_Than_Operator => 1366, +      Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1371, +      Iir_Kind_Sll_Operator => 1376, +      Iir_Kind_Sla_Operator => 1381, +      Iir_Kind_Srl_Operator => 1386, +      Iir_Kind_Sra_Operator => 1391, +      Iir_Kind_Rol_Operator => 1396, +      Iir_Kind_Ror_Operator => 1401, +      Iir_Kind_Addition_Operator => 1406, +      Iir_Kind_Substraction_Operator => 1411, +      Iir_Kind_Concatenation_Operator => 1416, +      Iir_Kind_Multiplication_Operator => 1421, +      Iir_Kind_Division_Operator => 1426, +      Iir_Kind_Modulus_Operator => 1431, +      Iir_Kind_Remainder_Operator => 1436, +      Iir_Kind_Exponentiation_Operator => 1441, +      Iir_Kind_Function_Call => 1449, +      Iir_Kind_Aggregate => 1456, +      Iir_Kind_Parenthesis_Expression => 1459, +      Iir_Kind_Qualified_Expression => 1463, +      Iir_Kind_Type_Conversion => 1468, +      Iir_Kind_Allocator_By_Expression => 1473, +      Iir_Kind_Allocator_By_Subtype => 1479, +      Iir_Kind_Selected_Element => 1487, +      Iir_Kind_Dereference => 1492, +      Iir_Kind_Implicit_Dereference => 1497, +      Iir_Kind_Slice_Name => 1504, +      Iir_Kind_Indexed_Name => 1510, +      Iir_Kind_Psl_Prev => 1516, +      Iir_Kind_Psl_Stable => 1521, +      Iir_Kind_Psl_Rose => 1526, +      Iir_Kind_Psl_Fell => 1531, +      Iir_Kind_Psl_Onehot => 1534, +      Iir_Kind_Psl_Onehot0 => 1537, +      Iir_Kind_Psl_Expression => 1539, +      Iir_Kind_Sensitized_Process_Statement => 1560, +      Iir_Kind_Process_Statement => 1580, +      Iir_Kind_Concurrent_Simple_Signal_Assignment => 1593, +      Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1606, +      Iir_Kind_Concurrent_Selected_Signal_Assignment => 1620, +      Iir_Kind_Concurrent_Assertion_Statement => 1628, +      Iir_Kind_Concurrent_Procedure_Call_Statement => 1635, +      Iir_Kind_Concurrent_Break_Statement => 1643, +      Iir_Kind_Psl_Assert_Directive => 1657, +      Iir_Kind_Psl_Assume_Directive => 1669, +      Iir_Kind_Psl_Cover_Directive => 1681, +      Iir_Kind_Psl_Restrict_Directive => 1692, +      Iir_Kind_Block_Statement => 1706, +      Iir_Kind_If_Generate_Statement => 1717, +      Iir_Kind_Case_Generate_Statement => 1726, +      Iir_Kind_For_Generate_Statement => 1735, +      Iir_Kind_Component_Instantiation_Statement => 1746, +      Iir_Kind_Psl_Default_Clock => 1749, +      Iir_Kind_Generate_Statement_Body => 1760, +      Iir_Kind_If_Generate_Else_Clause => 1766, +      Iir_Kind_Simple_Simultaneous_Statement => 1773, +      Iir_Kind_Simultaneous_Null_Statement => 1777, +      Iir_Kind_Simultaneous_Procedural_Statement => 1788, +      Iir_Kind_Simultaneous_Case_Statement => 1797, +      Iir_Kind_Simultaneous_If_Statement => 1806, +      Iir_Kind_Simultaneous_Elsif => 1812, +      Iir_Kind_Simple_Signal_Assignment_Statement => 1823, +      Iir_Kind_Conditional_Signal_Assignment_Statement => 1834, +      Iir_Kind_Selected_Waveform_Assignment_Statement => 1846, +      Iir_Kind_Signal_Force_Assignment_Statement => 1856, +      Iir_Kind_Signal_Release_Assignment_Statement => 1865, +      Iir_Kind_Null_Statement => 1869, +      Iir_Kind_Assertion_Statement => 1876, +      Iir_Kind_Report_Statement => 1882, +      Iir_Kind_Wait_Statement => 1890, +      Iir_Kind_Variable_Assignment_Statement => 1897, +      Iir_Kind_Conditional_Variable_Assignment_Statement => 1904, +      Iir_Kind_Return_Statement => 1910, +      Iir_Kind_For_Loop_Statement => 1921, +      Iir_Kind_While_Loop_Statement => 1932, +      Iir_Kind_Next_Statement => 1939, +      Iir_Kind_Exit_Statement => 1946, +      Iir_Kind_Case_Statement => 1955, +      Iir_Kind_Procedure_Call_Statement => 1961, +      Iir_Kind_Break_Statement => 1968, +      Iir_Kind_If_Statement => 1978, +      Iir_Kind_Suspend_State_Statement => 1982, +      Iir_Kind_Elsif => 1988, +      Iir_Kind_Character_Literal => 1995, +      Iir_Kind_Simple_Name => 2002, +      Iir_Kind_Selected_Name => 2010, +      Iir_Kind_Operator_Symbol => 2015, +      Iir_Kind_Reference_Name => 2020, +      Iir_Kind_External_Constant_Name => 2029, +      Iir_Kind_External_Signal_Name => 2038, +      Iir_Kind_External_Variable_Name => 2048, +      Iir_Kind_Selected_By_All_Name => 2054, +      Iir_Kind_Parenthesis_Name => 2059, +      Iir_Kind_Package_Pathname => 2063, +      Iir_Kind_Absolute_Pathname => 2064, +      Iir_Kind_Relative_Pathname => 2065, +      Iir_Kind_Pathname_Element => 2070, +      Iir_Kind_Base_Attribute => 2072, +      Iir_Kind_Subtype_Attribute => 2077, +      Iir_Kind_Element_Attribute => 2082, +      Iir_Kind_Across_Attribute => 2087, +      Iir_Kind_Through_Attribute => 2092, +      Iir_Kind_Nature_Reference_Attribute => 2096, +      Iir_Kind_Left_Type_Attribute => 2101, +      Iir_Kind_Right_Type_Attribute => 2106, +      Iir_Kind_High_Type_Attribute => 2111, +      Iir_Kind_Low_Type_Attribute => 2116, +      Iir_Kind_Ascending_Type_Attribute => 2121, +      Iir_Kind_Image_Attribute => 2127, +      Iir_Kind_Value_Attribute => 2133, +      Iir_Kind_Pos_Attribute => 2139, +      Iir_Kind_Val_Attribute => 2145, +      Iir_Kind_Succ_Attribute => 2151, +      Iir_Kind_Pred_Attribute => 2157, +      Iir_Kind_Leftof_Attribute => 2163, +      Iir_Kind_Rightof_Attribute => 2169, +      Iir_Kind_Signal_Slew_Attribute => 2177, +      Iir_Kind_Quantity_Slew_Attribute => 2185, +      Iir_Kind_Ramp_Attribute => 2193, +      Iir_Kind_Zoh_Attribute => 2201, +      Iir_Kind_Ltf_Attribute => 2209, +      Iir_Kind_Ztf_Attribute => 2219, +      Iir_Kind_Dot_Attribute => 2226, +      Iir_Kind_Integ_Attribute => 2233, +      Iir_Kind_Above_Attribute => 2241, +      Iir_Kind_Quantity_Delayed_Attribute => 2249, +      Iir_Kind_Delayed_Attribute => 2258, +      Iir_Kind_Stable_Attribute => 2267, +      Iir_Kind_Quiet_Attribute => 2276, +      Iir_Kind_Transaction_Attribute => 2285, +      Iir_Kind_Event_Attribute => 2289, +      Iir_Kind_Active_Attribute => 2293, +      Iir_Kind_Last_Event_Attribute => 2297, +      Iir_Kind_Last_Active_Attribute => 2301, +      Iir_Kind_Last_Value_Attribute => 2305, +      Iir_Kind_Driving_Attribute => 2309, +      Iir_Kind_Driving_Value_Attribute => 2313, +      Iir_Kind_Behavior_Attribute => 2313, +      Iir_Kind_Structure_Attribute => 2313, +      Iir_Kind_Simple_Name_Attribute => 2320, +      Iir_Kind_Instance_Name_Attribute => 2325, +      Iir_Kind_Path_Name_Attribute => 2330, +      Iir_Kind_Left_Array_Attribute => 2337, +      Iir_Kind_Right_Array_Attribute => 2344, +      Iir_Kind_High_Array_Attribute => 2351, +      Iir_Kind_Low_Array_Attribute => 2358, +      Iir_Kind_Length_Array_Attribute => 2365, +      Iir_Kind_Ascending_Array_Attribute => 2372, +      Iir_Kind_Range_Array_Attribute => 2379, +      Iir_Kind_Reverse_Range_Array_Attribute => 2386, +      Iir_Kind_Attribute_Name => 2395       );     function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -10976,6 +10977,7 @@ package body Vhdl.Nodes_Meta is             | Iir_Kind_Disconnection_Specification             | Iir_Kind_Step_Limit_Specification             | Iir_Kind_Configuration_Specification +           | Iir_Kind_Protected_Type_Declaration             | Iir_Kind_Protected_Type_Body             | Iir_Kind_Foreign_Module             | Iir_Kind_Entity_Declaration diff --git a/src/vhdl/vhdl-sem_types.adb b/src/vhdl/vhdl-sem_types.adb index 6a37771b1..31f5f2294 100644 --- a/src/vhdl/vhdl-sem_types.adb +++ b/src/vhdl/vhdl-sem_types.adb @@ -570,13 +570,14 @@ package body Vhdl.Sem_Types is     procedure Sem_Protected_Type_Declaration (Type_Decl : Iir_Type_Declaration)     is -      Decl : Iir_Protected_Type_Declaration; +      Decl : constant Iir_Protected_Type_Declaration := +        Get_Type_Definition (Type_Decl);        El : Iir;     begin -      Decl := Get_Type_Definition (Type_Decl);        Set_Resolved_Flag (Decl, False);        Set_Signal_Type_Flag (Decl, False);        Set_Type_Staticness (Decl, None); +      Set_Parent (Decl, Get_Parent (Type_Decl));        --  LRM 10.3 Visibility        --  [...] except in the declaration of a design_unit or a protected type  | 
