aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-08-23 21:39:00 +0200
committerTristan Gingold <tgingold@free.fr>2021-08-24 06:26:33 +0200
commit8dce98079531f7b222340fb53373cd43c9939ff1 (patch)
treefbc268689a822a978c874830528a5801ae9a8110 /src/vhdl
parent839ac8635cca825618163cadcb9a7734e43172b9 (diff)
downloadghdl-8dce98079531f7b222340fb53373cd43c9939ff1.tar.gz
ghdl-8dce98079531f7b222340fb53373cd43c9939ff1.tar.bz2
ghdl-8dce98079531f7b222340fb53373cd43c9939ff1.zip
vhdl: remove iir_kind_anonymous_signal_declaration (now unused)
Diffstat (limited to 'src/vhdl')
-rw-r--r--src/vhdl/translate/trans-chap4.adb28
-rw-r--r--src/vhdl/translate/trans-chap6.adb12
-rw-r--r--src/vhdl/translate/trans-chap7.adb1
-rw-r--r--src/vhdl/translate/trans-rtis.adb9
-rw-r--r--src/vhdl/vhdl-annotations.adb4
-rw-r--r--src/vhdl/vhdl-canon.adb60
-rw-r--r--src/vhdl/vhdl-elocations.adb1
-rw-r--r--src/vhdl/vhdl-elocations.ads2
-rw-r--r--src/vhdl/vhdl-errors.adb3
-rw-r--r--src/vhdl/vhdl-nodes.adb1
-rw-r--r--src/vhdl/vhdl-nodes.ads26
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb384
-rw-r--r--src/vhdl/vhdl-prints.adb25
-rw-r--r--src/vhdl/vhdl-sem.adb59
-rw-r--r--src/vhdl/vhdl-sem_decls.adb16
-rw-r--r--src/vhdl/vhdl-sem_decls.ads4
-rw-r--r--src/vhdl/vhdl-sem_scopes.adb3
-rw-r--r--src/vhdl/vhdl-utils.adb4
18 files changed, 198 insertions, 444 deletions
diff --git a/src/vhdl/translate/trans-chap4.adb b/src/vhdl/translate/trans-chap4.adb
index 65e2297dd..90b2d7313 100644
--- a/src/vhdl/translate/trans-chap4.adb
+++ b/src/vhdl/translate/trans-chap4.adb
@@ -193,9 +193,7 @@ package body Trans.Chap4 is
Type_Info : Type_Info_Acc;
Info : Signal_Info_Acc;
begin
- if Get_Kind (Decl) /= Iir_Kind_Anonymous_Signal_Declaration then
- Chap3.Translate_Object_Subtype_Indication (Decl);
- end if;
+ Chap3.Translate_Object_Subtype_Indication (Decl);
Type_Info := Get_Info (Sig_Type_Def);
Info := Add_Info (Decl, Kind_Signal);
@@ -227,8 +225,7 @@ package body Trans.Chap4 is
when Iir_Kind_Signal_Declaration
| Iir_Kind_Interface_Signal_Declaration =>
Rtis.Generate_Signal_Rti (Decl);
- when Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ when Iir_Kind_Guard_Signal_Declaration =>
-- No name created for guard signal.
null;
when others =>
@@ -477,14 +474,9 @@ package body Trans.Chap4 is
procedure Elab_Maybe_Subtype_Attribute
(Decl : Iir; Name_Val : Mnode; Name_Sig : Mnode) is
begin
- case Get_Kind (Decl) is
- when Iir_Kind_Anonymous_Signal_Declaration =>
- return;
- when others =>
- if not Is_Object_Subtype_Attribute (Decl) then
- return;
- end if;
- end case;
+ if not Is_Object_Subtype_Attribute (Decl) then
+ return;
+ end if;
Elab_Subtype_Attribute (Decl, Name_Val, Name_Sig);
end Elab_Maybe_Subtype_Attribute;
@@ -1140,9 +1132,7 @@ package body Trans.Chap4 is
Open_Temp;
- if Get_Kind (Decl) /= Iir_Kind_Anonymous_Signal_Declaration then
- Chap3.Elab_Object_Subtype_Indication (Decl);
- end if;
+ Chap3.Elab_Object_Subtype_Indication (Decl);
Type_Info := Get_Info (Sig_Type);
@@ -1894,8 +1884,7 @@ package body Trans.Chap4 is
| Iir_Kind_Constant_Declaration =>
Create_Object (Decl);
- when Iir_Kind_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ when Iir_Kind_Signal_Declaration =>
Create_Signal (Decl);
when Iir_Kind_Object_Alias_Declaration =>
@@ -2659,8 +2648,7 @@ package body Trans.Chap4 is
Need_Final := True;
end if;
- when Iir_Kind_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ when Iir_Kind_Signal_Declaration =>
Elab_Signal_Declaration (Decl, Parent, False);
when Iir_Kind_Object_Alias_Declaration =>
diff --git a/src/vhdl/translate/trans-chap6.adb b/src/vhdl/translate/trans-chap6.adb
index 02ed20f1e..64078a13d 100644
--- a/src/vhdl/translate/trans-chap6.adb
+++ b/src/vhdl/translate/trans-chap6.adb
@@ -1161,8 +1161,7 @@ package body Trans.Chap6 is
| Iir_Kind_Quiet_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Transaction_Attribute
- | Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Guard_Signal_Declaration =>
if Mode = Mode_Signal then
return Get_Var (Name_Info.Signal_Sig, Type_Info, Mode_Signal);
else
@@ -1271,8 +1270,7 @@ package body Trans.Chap6 is
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Transaction_Attribute
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Object_Alias_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Object_Alias_Declaration =>
Translate_Signal_Base (Name, Sig, Drv);
when Iir_Kind_Slice_Name =>
declare
@@ -1324,8 +1322,7 @@ package body Trans.Chap6 is
begin
case Get_Kind (Name) is
when Iir_Kind_Signal_Declaration
- | Iir_Kind_Interface_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Interface_Signal_Declaration =>
declare
Name_Type : constant Iir := Get_Type (Name);
Name_Info : constant Ortho_Info_Acc := Get_Info (Name);
@@ -1384,8 +1381,7 @@ package body Trans.Chap6 is
| Iir_Kind_Quiet_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Transaction_Attribute
- | Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Guard_Signal_Declaration =>
Sig := Get_Var (Name_Info.Signal_Sig, Type_Info, Mode_Signal);
Val := Get_Var (Name_Info.Signal_Val, Type_Info, Mode_Value);
when Iir_Kind_Interface_Signal_Declaration =>
diff --git a/src/vhdl/translate/trans-chap7.adb b/src/vhdl/translate/trans-chap7.adb
index ea1abb7e3..635c59a43 100644
--- a/src/vhdl/translate/trans-chap7.adb
+++ b/src/vhdl/translate/trans-chap7.adb
@@ -4369,7 +4369,6 @@ package body Trans.Chap7 is
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Transaction_Attribute
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Attribute_Value
| Iir_Kind_Attribute_Name =>
Res := M2E (Chap6.Translate_Name (Expr, Mode_Value));
diff --git a/src/vhdl/translate/trans-rtis.adb b/src/vhdl/translate/trans-rtis.adb
index 3d2a8dd99..8f658ae39 100644
--- a/src/vhdl/translate/trans-rtis.adb
+++ b/src/vhdl/translate/trans-rtis.adb
@@ -1986,8 +1986,7 @@ package body Trans.Rtis is
Start_Record_Aggr (List, Ghdl_Rtin_Object);
Mode := 0;
case Get_Kind (Decl) is
- when Iir_Kind_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ when Iir_Kind_Signal_Declaration =>
Comm := Ghdl_Rtik_Signal;
Var := Info.Signal_Sig;
when Iir_Kind_Interface_Signal_Declaration =>
@@ -2196,8 +2195,7 @@ package body Trans.Rtis is
| Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Variable_Declaration
| Iir_Kind_File_Declaration
- | Iir_Kind_Signal_Attribute_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Signal_Attribute_Declaration =>
null;
when Iir_Kind_Object_Alias_Declaration
| Iir_Kind_Attribute_Declaration =>
@@ -2327,8 +2325,7 @@ package body Trans.Rtis is
Add_Rti_Node (Info.Object_Rti);
end;
when Iir_Kind_Signal_Declaration
- | Iir_Kind_Interface_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Interface_Signal_Declaration =>
declare
Info : constant Signal_Info_Acc := Get_Info (Decl);
begin
diff --git a/src/vhdl/vhdl-annotations.adb b/src/vhdl/vhdl-annotations.adb
index c1932f323..f31b50be2 100644
--- a/src/vhdl/vhdl-annotations.adb
+++ b/src/vhdl/vhdl-annotations.adb
@@ -677,10 +677,6 @@ package body Vhdl.Annotations is
when Iir_Kind_Signal_Declaration =>
Annotate_Declaration_Type (Block_Info, Decl);
Create_Signal_Info (Block_Info, Decl);
- when Iir_Kind_Anonymous_Signal_Declaration =>
- if not Flag_Synthesis then
- Create_Signal_Info (Block_Info, Decl);
- end if;
when Iir_Kind_Variable_Declaration
| Iir_Kind_Iterator_Declaration =>
diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb
index f56c0674f..97901145c 100644
--- a/src/vhdl/vhdl-canon.adb
+++ b/src/vhdl/vhdl-canon.adb
@@ -234,7 +234,6 @@ package body Vhdl.Canon is
when Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kinds_Signal_Attribute
| Iir_Kind_Above_Attribute
| Iir_Kind_External_Signal_Name =>
@@ -2975,46 +2974,6 @@ package body Vhdl.Canon is
Canon_Expression (Get_Default_Value (Decl));
end if;
- when Iir_Kind_Anonymous_Signal_Declaration =>
- if Canon_Flag_Expressions then
- Canon_Expression (Get_Expression (Decl));
- end if;
- -- Create a signal assignment.
- if Canon_Flag_Inertial_Associations then
- declare
- Parent : constant Node := Get_Parent (Decl);
- Asgn : Iir;
- We : Iir;
- Name : Iir;
- begin
- Asgn := Create_Iir
- (Iir_Kind_Concurrent_Simple_Signal_Assignment);
- Location_Copy (Asgn, Decl);
- Set_Parent (Asgn, Parent);
-
- Name := Create_Iir (Iir_Kind_Reference_Name);
- Location_Copy (Name, Decl);
- Set_Referenced_Name (Name, Decl);
- Set_Named_Entity (Name, Decl);
- Set_Type (Name, Get_Type (Decl));
- Set_Expr_Staticness (Name, None);
-
- Set_Target (Asgn, Name);
- Set_Delay_Mechanism (Asgn, Iir_Inertial_Delay);
-
- We := Create_Iir (Iir_Kind_Waveform_Element);
- Location_Copy (We, Decl);
- Set_We_Value (We, Get_Expression (Decl));
- Set_Expression (Decl, Null_Iir);
-
- Set_Waveform_Chain (Asgn, We);
-
- -- Prepend.
- Set_Chain (Asgn, Get_Concurrent_Statement_Chain (Parent));
- Set_Concurrent_Statement_Chain (Parent, Asgn);
- end;
- end if;
-
when Iir_Kind_Iterator_Declaration =>
null;
@@ -3090,33 +3049,14 @@ package body Vhdl.Canon is
Decl : Iir;
Prev_Decl : Iir;
New_Decl : Iir;
- Anon_Label : Natural;
begin
if Parent /= Null_Iir then
Clear_Instantiation_Configuration (Parent);
end if;
- Anon_Label := 0;
-
Decl := Get_Declaration_Chain (Decl_Parent);
Prev_Decl := Null_Iir;
while Decl /= Null_Iir loop
- -- Give a name to anonymous signals.
- -- Ideally it should be done in Canon_Declaration, but we need
- -- a counter for all the declarations.
- if Get_Kind (Decl) = Iir_Kind_Anonymous_Signal_Declaration then
- declare
- Str : String := "ANONYMOUS" & Natural'Image (Anon_Label);
- begin
- -- Note: the label starts with a capitalized
- -- letter, to avoid any clash with user's
- -- identifiers.
- Str (10) := '_';
- Set_Identifier (Decl, Name_Table.Get_Identifier (Str));
- Anon_Label := Anon_Label + 1;
- end;
- end if;
-
New_Decl := Canon_Declaration (Top, Decl, Parent);
if New_Decl /= Decl then
diff --git a/src/vhdl/vhdl-elocations.adb b/src/vhdl/vhdl-elocations.adb
index 1b42f3640..9736cb92f 100644
--- a/src/vhdl/vhdl-elocations.adb
+++ b/src/vhdl/vhdl-elocations.adb
@@ -294,7 +294,6 @@ package body Vhdl.Elocations is
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
diff --git a/src/vhdl/vhdl-elocations.ads b/src/vhdl/vhdl-elocations.ads
index d5fa98b85..a4d13f654 100644
--- a/src/vhdl/vhdl-elocations.ads
+++ b/src/vhdl/vhdl-elocations.ads
@@ -279,8 +279,6 @@ package Vhdl.Elocations is
-- Iir_Kind_Guard_Signal_Declaration (None)
- -- Iir_Kind_Anonymous_Signal_Declaration (None)
-
-- Iir_Kind_Signal_Attribute_Declaration (None)
-- Iir_Kind_Constant_Declaration (L1)
diff --git a/src/vhdl/vhdl-errors.adb b/src/vhdl/vhdl-errors.adb
index 27d6c9a7f..947a75d6e 100644
--- a/src/vhdl/vhdl-errors.adb
+++ b/src/vhdl/vhdl-errors.adb
@@ -493,9 +493,6 @@ package body Vhdl.Errors is
when Iir_Kind_Signal_Attribute_Declaration =>
-- Should not appear.
return "signal attribute";
- when Iir_Kind_Anonymous_Signal_Declaration =>
- -- Should not appear.
- return "anonymous signal";
when Iir_Kind_Group_Template_Declaration =>
return Disp_Identifier (Node, "group template");
when Iir_Kind_Group_Declaration =>
diff --git a/src/vhdl/vhdl-nodes.adb b/src/vhdl/vhdl-nodes.adb
index 2fae16c38..2ee78985c 100644
--- a/src/vhdl/vhdl-nodes.adb
+++ b/src/vhdl/vhdl-nodes.adb
@@ -1081,7 +1081,6 @@ package body Vhdl.Nodes is
| Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 5e53da773..2445ab33e 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -1863,31 +1863,6 @@ package Vhdl.Nodes is
--
-- Get/Set_Is_Ref (Flag12)
- -- Iir_Kind_Anonymous_Signal_Declaration (Short)
- --
- -- Anonymous signal created for vhdl 2008 port association with a non
- -- globally static expression.
- --
- -- Get/Set_Parent (Field0)
- --
- -- Get/Set_Chain (Field2)
- --
- -- Get/Set_Identifier (Field3)
- --
- -- Must be Null.
- -- Get/Set_Default_Value (Field4)
- --
- -- The expression that is assigned to the signal.
- -- Get/Set_Expression (Field5)
- --
- -- Get/Set_Type (Field1)
- --
- -- Get/Set_After_Drivers_Flag (Flag5)
- --
- -- Get/Set_Is_Ref (Flag12)
- --
- -- Get/Set_Expr_Staticness (State1)
-
-- Iir_Kind_Signal_Attribute_Declaration (Short)
--
-- Chain of implicit signals created from signal attribute. This is just
@@ -4994,7 +4969,6 @@ package Vhdl.Nodes is
Iir_Kind_Interface_Function_Declaration, -- interface
Iir_Kind_Interface_Procedure_Declaration, -- interface
- Iir_Kind_Anonymous_Signal_Declaration,
Iir_Kind_Signal_Attribute_Declaration,
-- Expressions.
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 0b8092802..ee6b81c31 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -1421,8 +1421,6 @@ package body Vhdl.Nodes_Meta is
return "interface_function_declaration";
when Iir_Kind_Interface_Procedure_Declaration =>
return "interface_procedure_declaration";
- when Iir_Kind_Anonymous_Signal_Declaration =>
- return "anonymous_signal_declaration";
when Iir_Kind_Signal_Attribute_Declaration =>
return "signal_attribute_declaration";
when Iir_Kind_Identity_Operator =>
@@ -3894,16 +3892,6 @@ package body Vhdl.Nodes_Meta is
Field_Chain,
Field_Interface_Declaration_Chain,
Field_Return_Type_Mark,
- -- Iir_Kind_Anonymous_Signal_Declaration
- Field_Identifier,
- Field_Is_Ref,
- Field_After_Drivers_Flag,
- Field_Expr_Staticness,
- Field_Parent,
- Field_Chain,
- Field_Default_Value,
- Field_Expression,
- Field_Type,
-- Iir_Kind_Signal_Attribute_Declaration
Field_Parent,
Field_Chain,
@@ -5384,186 +5372,185 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Interface_Package_Declaration => 1190,
Iir_Kind_Interface_Function_Declaration => 1208,
Iir_Kind_Interface_Procedure_Declaration => 1222,
- Iir_Kind_Anonymous_Signal_Declaration => 1231,
- Iir_Kind_Signal_Attribute_Declaration => 1234,
- Iir_Kind_Identity_Operator => 1238,
- Iir_Kind_Negation_Operator => 1242,
- Iir_Kind_Absolute_Operator => 1246,
- Iir_Kind_Not_Operator => 1250,
- Iir_Kind_Implicit_Condition_Operator => 1254,
- Iir_Kind_Condition_Operator => 1258,
- Iir_Kind_Reduction_And_Operator => 1262,
- Iir_Kind_Reduction_Or_Operator => 1266,
- Iir_Kind_Reduction_Nand_Operator => 1270,
- Iir_Kind_Reduction_Nor_Operator => 1274,
- Iir_Kind_Reduction_Xor_Operator => 1278,
- Iir_Kind_Reduction_Xnor_Operator => 1282,
- Iir_Kind_And_Operator => 1287,
- Iir_Kind_Or_Operator => 1292,
- Iir_Kind_Nand_Operator => 1297,
- Iir_Kind_Nor_Operator => 1302,
- Iir_Kind_Xor_Operator => 1307,
- Iir_Kind_Xnor_Operator => 1312,
- Iir_Kind_Equality_Operator => 1317,
- Iir_Kind_Inequality_Operator => 1322,
- Iir_Kind_Less_Than_Operator => 1327,
- Iir_Kind_Less_Than_Or_Equal_Operator => 1332,
- Iir_Kind_Greater_Than_Operator => 1337,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 1342,
- Iir_Kind_Match_Equality_Operator => 1347,
- Iir_Kind_Match_Inequality_Operator => 1352,
- Iir_Kind_Match_Less_Than_Operator => 1357,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1362,
- Iir_Kind_Match_Greater_Than_Operator => 1367,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1372,
- Iir_Kind_Sll_Operator => 1377,
- Iir_Kind_Sla_Operator => 1382,
- Iir_Kind_Srl_Operator => 1387,
- Iir_Kind_Sra_Operator => 1392,
- Iir_Kind_Rol_Operator => 1397,
- Iir_Kind_Ror_Operator => 1402,
- Iir_Kind_Addition_Operator => 1407,
- Iir_Kind_Substraction_Operator => 1412,
- Iir_Kind_Concatenation_Operator => 1417,
- Iir_Kind_Multiplication_Operator => 1422,
- Iir_Kind_Division_Operator => 1427,
- Iir_Kind_Modulus_Operator => 1432,
- Iir_Kind_Remainder_Operator => 1437,
- Iir_Kind_Exponentiation_Operator => 1442,
- Iir_Kind_Function_Call => 1450,
- Iir_Kind_Aggregate => 1457,
- Iir_Kind_Parenthesis_Expression => 1460,
- Iir_Kind_Qualified_Expression => 1464,
- Iir_Kind_Type_Conversion => 1469,
- Iir_Kind_Allocator_By_Expression => 1474,
- Iir_Kind_Allocator_By_Subtype => 1480,
- Iir_Kind_Selected_Element => 1488,
- Iir_Kind_Dereference => 1493,
- Iir_Kind_Implicit_Dereference => 1498,
- Iir_Kind_Slice_Name => 1505,
- Iir_Kind_Indexed_Name => 1511,
- Iir_Kind_Psl_Prev => 1517,
- Iir_Kind_Psl_Stable => 1522,
- Iir_Kind_Psl_Rose => 1527,
- Iir_Kind_Psl_Fell => 1532,
- Iir_Kind_Psl_Onehot => 1535,
- Iir_Kind_Psl_Onehot0 => 1538,
- Iir_Kind_Psl_Expression => 1540,
- Iir_Kind_Sensitized_Process_Statement => 1561,
- Iir_Kind_Process_Statement => 1581,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1594,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1607,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1621,
- Iir_Kind_Concurrent_Assertion_Statement => 1629,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1636,
- Iir_Kind_Concurrent_Break_Statement => 1644,
- Iir_Kind_Psl_Assert_Directive => 1657,
- 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 => 1953,
- Iir_Kind_Procedure_Call_Statement => 1959,
- Iir_Kind_Break_Statement => 1966,
- Iir_Kind_If_Statement => 1976,
- Iir_Kind_Elsif => 1982,
- Iir_Kind_Character_Literal => 1989,
- Iir_Kind_Simple_Name => 1996,
- Iir_Kind_Selected_Name => 2004,
- Iir_Kind_Operator_Symbol => 2009,
- Iir_Kind_Reference_Name => 2014,
- Iir_Kind_External_Constant_Name => 2023,
- Iir_Kind_External_Signal_Name => 2032,
- Iir_Kind_External_Variable_Name => 2042,
- Iir_Kind_Selected_By_All_Name => 2048,
- Iir_Kind_Parenthesis_Name => 2053,
- Iir_Kind_Package_Pathname => 2057,
- Iir_Kind_Absolute_Pathname => 2058,
- Iir_Kind_Relative_Pathname => 2059,
- Iir_Kind_Pathname_Element => 2064,
- Iir_Kind_Base_Attribute => 2066,
- Iir_Kind_Subtype_Attribute => 2071,
- Iir_Kind_Element_Attribute => 2076,
- Iir_Kind_Across_Attribute => 2081,
- Iir_Kind_Through_Attribute => 2086,
- Iir_Kind_Nature_Reference_Attribute => 2090,
- Iir_Kind_Left_Type_Attribute => 2095,
- Iir_Kind_Right_Type_Attribute => 2100,
- Iir_Kind_High_Type_Attribute => 2105,
- Iir_Kind_Low_Type_Attribute => 2110,
- Iir_Kind_Ascending_Type_Attribute => 2115,
- Iir_Kind_Image_Attribute => 2121,
- Iir_Kind_Value_Attribute => 2127,
- Iir_Kind_Pos_Attribute => 2133,
- Iir_Kind_Val_Attribute => 2139,
- Iir_Kind_Succ_Attribute => 2145,
- Iir_Kind_Pred_Attribute => 2151,
- Iir_Kind_Leftof_Attribute => 2157,
- Iir_Kind_Rightof_Attribute => 2163,
- Iir_Kind_Signal_Slew_Attribute => 2171,
- Iir_Kind_Quantity_Slew_Attribute => 2179,
- Iir_Kind_Ramp_Attribute => 2187,
- Iir_Kind_Zoh_Attribute => 2195,
- Iir_Kind_Ltf_Attribute => 2203,
- Iir_Kind_Ztf_Attribute => 2213,
- Iir_Kind_Dot_Attribute => 2220,
- Iir_Kind_Integ_Attribute => 2227,
- Iir_Kind_Above_Attribute => 2235,
- Iir_Kind_Quantity_Delayed_Attribute => 2243,
- Iir_Kind_Delayed_Attribute => 2252,
- Iir_Kind_Stable_Attribute => 2261,
- Iir_Kind_Quiet_Attribute => 2270,
- Iir_Kind_Transaction_Attribute => 2279,
- Iir_Kind_Event_Attribute => 2283,
- Iir_Kind_Active_Attribute => 2287,
- Iir_Kind_Last_Event_Attribute => 2291,
- Iir_Kind_Last_Active_Attribute => 2295,
- Iir_Kind_Last_Value_Attribute => 2299,
- Iir_Kind_Driving_Attribute => 2303,
- Iir_Kind_Driving_Value_Attribute => 2307,
- Iir_Kind_Behavior_Attribute => 2307,
- Iir_Kind_Structure_Attribute => 2307,
- Iir_Kind_Simple_Name_Attribute => 2314,
- Iir_Kind_Instance_Name_Attribute => 2319,
- Iir_Kind_Path_Name_Attribute => 2324,
- Iir_Kind_Left_Array_Attribute => 2331,
- Iir_Kind_Right_Array_Attribute => 2338,
- Iir_Kind_High_Array_Attribute => 2345,
- Iir_Kind_Low_Array_Attribute => 2352,
- Iir_Kind_Length_Array_Attribute => 2359,
- Iir_Kind_Ascending_Array_Attribute => 2366,
- Iir_Kind_Range_Array_Attribute => 2373,
- Iir_Kind_Reverse_Range_Array_Attribute => 2380,
- Iir_Kind_Attribute_Name => 2389
+ Iir_Kind_Signal_Attribute_Declaration => 1225,
+ Iir_Kind_Identity_Operator => 1229,
+ Iir_Kind_Negation_Operator => 1233,
+ Iir_Kind_Absolute_Operator => 1237,
+ Iir_Kind_Not_Operator => 1241,
+ Iir_Kind_Implicit_Condition_Operator => 1245,
+ Iir_Kind_Condition_Operator => 1249,
+ Iir_Kind_Reduction_And_Operator => 1253,
+ Iir_Kind_Reduction_Or_Operator => 1257,
+ Iir_Kind_Reduction_Nand_Operator => 1261,
+ Iir_Kind_Reduction_Nor_Operator => 1265,
+ Iir_Kind_Reduction_Xor_Operator => 1269,
+ Iir_Kind_Reduction_Xnor_Operator => 1273,
+ Iir_Kind_And_Operator => 1278,
+ Iir_Kind_Or_Operator => 1283,
+ Iir_Kind_Nand_Operator => 1288,
+ Iir_Kind_Nor_Operator => 1293,
+ Iir_Kind_Xor_Operator => 1298,
+ Iir_Kind_Xnor_Operator => 1303,
+ Iir_Kind_Equality_Operator => 1308,
+ Iir_Kind_Inequality_Operator => 1313,
+ Iir_Kind_Less_Than_Operator => 1318,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1323,
+ Iir_Kind_Greater_Than_Operator => 1328,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1333,
+ Iir_Kind_Match_Equality_Operator => 1338,
+ Iir_Kind_Match_Inequality_Operator => 1343,
+ Iir_Kind_Match_Less_Than_Operator => 1348,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1353,
+ Iir_Kind_Match_Greater_Than_Operator => 1358,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1363,
+ Iir_Kind_Sll_Operator => 1368,
+ Iir_Kind_Sla_Operator => 1373,
+ Iir_Kind_Srl_Operator => 1378,
+ Iir_Kind_Sra_Operator => 1383,
+ Iir_Kind_Rol_Operator => 1388,
+ Iir_Kind_Ror_Operator => 1393,
+ Iir_Kind_Addition_Operator => 1398,
+ Iir_Kind_Substraction_Operator => 1403,
+ Iir_Kind_Concatenation_Operator => 1408,
+ Iir_Kind_Multiplication_Operator => 1413,
+ Iir_Kind_Division_Operator => 1418,
+ Iir_Kind_Modulus_Operator => 1423,
+ Iir_Kind_Remainder_Operator => 1428,
+ Iir_Kind_Exponentiation_Operator => 1433,
+ Iir_Kind_Function_Call => 1441,
+ Iir_Kind_Aggregate => 1448,
+ Iir_Kind_Parenthesis_Expression => 1451,
+ Iir_Kind_Qualified_Expression => 1455,
+ Iir_Kind_Type_Conversion => 1460,
+ Iir_Kind_Allocator_By_Expression => 1465,
+ Iir_Kind_Allocator_By_Subtype => 1471,
+ Iir_Kind_Selected_Element => 1479,
+ Iir_Kind_Dereference => 1484,
+ Iir_Kind_Implicit_Dereference => 1489,
+ Iir_Kind_Slice_Name => 1496,
+ Iir_Kind_Indexed_Name => 1502,
+ Iir_Kind_Psl_Prev => 1508,
+ Iir_Kind_Psl_Stable => 1513,
+ Iir_Kind_Psl_Rose => 1518,
+ Iir_Kind_Psl_Fell => 1523,
+ Iir_Kind_Psl_Onehot => 1526,
+ Iir_Kind_Psl_Onehot0 => 1529,
+ Iir_Kind_Psl_Expression => 1531,
+ Iir_Kind_Sensitized_Process_Statement => 1552,
+ Iir_Kind_Process_Statement => 1572,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1585,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1598,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1612,
+ Iir_Kind_Concurrent_Assertion_Statement => 1620,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1627,
+ Iir_Kind_Concurrent_Break_Statement => 1635,
+ Iir_Kind_Psl_Assert_Directive => 1648,
+ Iir_Kind_Psl_Assume_Directive => 1659,
+ Iir_Kind_Psl_Cover_Directive => 1671,
+ Iir_Kind_Psl_Restrict_Directive => 1682,
+ Iir_Kind_Block_Statement => 1696,
+ Iir_Kind_If_Generate_Statement => 1707,
+ Iir_Kind_Case_Generate_Statement => 1716,
+ Iir_Kind_For_Generate_Statement => 1725,
+ Iir_Kind_Component_Instantiation_Statement => 1736,
+ Iir_Kind_Psl_Default_Clock => 1739,
+ Iir_Kind_Generate_Statement_Body => 1750,
+ Iir_Kind_If_Generate_Else_Clause => 1756,
+ Iir_Kind_Simple_Simultaneous_Statement => 1763,
+ Iir_Kind_Simultaneous_Null_Statement => 1767,
+ Iir_Kind_Simultaneous_Procedural_Statement => 1778,
+ Iir_Kind_Simultaneous_Case_Statement => 1787,
+ Iir_Kind_Simultaneous_If_Statement => 1796,
+ Iir_Kind_Simultaneous_Elsif => 1802,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1813,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1824,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1836,
+ Iir_Kind_Signal_Force_Assignment_Statement => 1846,
+ Iir_Kind_Signal_Release_Assignment_Statement => 1855,
+ Iir_Kind_Null_Statement => 1859,
+ Iir_Kind_Assertion_Statement => 1866,
+ Iir_Kind_Report_Statement => 1872,
+ Iir_Kind_Wait_Statement => 1880,
+ Iir_Kind_Variable_Assignment_Statement => 1887,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1894,
+ Iir_Kind_Return_Statement => 1900,
+ Iir_Kind_For_Loop_Statement => 1911,
+ Iir_Kind_While_Loop_Statement => 1922,
+ Iir_Kind_Next_Statement => 1929,
+ Iir_Kind_Exit_Statement => 1936,
+ Iir_Kind_Case_Statement => 1944,
+ Iir_Kind_Procedure_Call_Statement => 1950,
+ Iir_Kind_Break_Statement => 1957,
+ Iir_Kind_If_Statement => 1967,
+ Iir_Kind_Elsif => 1973,
+ Iir_Kind_Character_Literal => 1980,
+ Iir_Kind_Simple_Name => 1987,
+ Iir_Kind_Selected_Name => 1995,
+ Iir_Kind_Operator_Symbol => 2000,
+ Iir_Kind_Reference_Name => 2005,
+ Iir_Kind_External_Constant_Name => 2014,
+ Iir_Kind_External_Signal_Name => 2023,
+ Iir_Kind_External_Variable_Name => 2033,
+ Iir_Kind_Selected_By_All_Name => 2039,
+ Iir_Kind_Parenthesis_Name => 2044,
+ Iir_Kind_Package_Pathname => 2048,
+ Iir_Kind_Absolute_Pathname => 2049,
+ Iir_Kind_Relative_Pathname => 2050,
+ Iir_Kind_Pathname_Element => 2055,
+ Iir_Kind_Base_Attribute => 2057,
+ Iir_Kind_Subtype_Attribute => 2062,
+ Iir_Kind_Element_Attribute => 2067,
+ Iir_Kind_Across_Attribute => 2072,
+ Iir_Kind_Through_Attribute => 2077,
+ Iir_Kind_Nature_Reference_Attribute => 2081,
+ Iir_Kind_Left_Type_Attribute => 2086,
+ Iir_Kind_Right_Type_Attribute => 2091,
+ Iir_Kind_High_Type_Attribute => 2096,
+ Iir_Kind_Low_Type_Attribute => 2101,
+ Iir_Kind_Ascending_Type_Attribute => 2106,
+ Iir_Kind_Image_Attribute => 2112,
+ Iir_Kind_Value_Attribute => 2118,
+ Iir_Kind_Pos_Attribute => 2124,
+ Iir_Kind_Val_Attribute => 2130,
+ Iir_Kind_Succ_Attribute => 2136,
+ Iir_Kind_Pred_Attribute => 2142,
+ Iir_Kind_Leftof_Attribute => 2148,
+ Iir_Kind_Rightof_Attribute => 2154,
+ Iir_Kind_Signal_Slew_Attribute => 2162,
+ Iir_Kind_Quantity_Slew_Attribute => 2170,
+ Iir_Kind_Ramp_Attribute => 2178,
+ Iir_Kind_Zoh_Attribute => 2186,
+ Iir_Kind_Ltf_Attribute => 2194,
+ Iir_Kind_Ztf_Attribute => 2204,
+ Iir_Kind_Dot_Attribute => 2211,
+ Iir_Kind_Integ_Attribute => 2218,
+ Iir_Kind_Above_Attribute => 2226,
+ Iir_Kind_Quantity_Delayed_Attribute => 2234,
+ Iir_Kind_Delayed_Attribute => 2243,
+ Iir_Kind_Stable_Attribute => 2252,
+ Iir_Kind_Quiet_Attribute => 2261,
+ Iir_Kind_Transaction_Attribute => 2270,
+ Iir_Kind_Event_Attribute => 2274,
+ Iir_Kind_Active_Attribute => 2278,
+ Iir_Kind_Last_Event_Attribute => 2282,
+ Iir_Kind_Last_Active_Attribute => 2286,
+ Iir_Kind_Last_Value_Attribute => 2290,
+ Iir_Kind_Driving_Attribute => 2294,
+ Iir_Kind_Driving_Value_Attribute => 2298,
+ Iir_Kind_Behavior_Attribute => 2298,
+ Iir_Kind_Structure_Attribute => 2298,
+ Iir_Kind_Simple_Name_Attribute => 2305,
+ Iir_Kind_Instance_Name_Attribute => 2310,
+ Iir_Kind_Path_Name_Attribute => 2315,
+ Iir_Kind_Left_Array_Attribute => 2322,
+ Iir_Kind_Right_Array_Attribute => 2329,
+ Iir_Kind_High_Array_Attribute => 2336,
+ Iir_Kind_Low_Array_Attribute => 2343,
+ Iir_Kind_Length_Array_Attribute => 2350,
+ Iir_Kind_Ascending_Array_Attribute => 2357,
+ Iir_Kind_Range_Array_Attribute => 2364,
+ Iir_Kind_Reverse_Range_Array_Attribute => 2371,
+ Iir_Kind_Attribute_Name => 2380
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -8186,8 +8173,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
- | Iir_Kind_Interface_Quantity_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Interface_Quantity_Declaration =>
return True;
when others =>
return False;
@@ -8568,7 +8554,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Package_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
@@ -8696,7 +8681,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Interface_Function_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
| Iir_Kind_Absolute_Operator
@@ -9199,8 +9183,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
- | Iir_Kind_Interface_Quantity_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Interface_Quantity_Declaration =>
return True;
when others =>
return False;
@@ -9466,7 +9449,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Package_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Selected_Element
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
@@ -10691,7 +10673,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Attribute_Specification
| Iir_Kind_Disconnection_Specification
| Iir_Kind_Step_Limit_Specification
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Parenthesis_Expression
| Iir_Kind_Qualified_Expression
| Iir_Kind_Type_Conversion
@@ -10980,7 +10961,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Package_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
@@ -11176,7 +11156,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
| Iir_Kind_Interface_Quantity_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
| Iir_Kind_Absolute_Operator
@@ -12519,7 +12498,6 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Allocator_By_Expression
| Iir_Kind_Allocator_By_Subtype
| Iir_Kind_Sensitized_Process_Statement
diff --git a/src/vhdl/vhdl-prints.adb b/src/vhdl/vhdl-prints.adb
index c0abf532e..361cbe18b 100644
--- a/src/vhdl/vhdl-prints.adb
+++ b/src/vhdl/vhdl-prints.adb
@@ -234,7 +234,6 @@ package body Vhdl.Prints is
| Iir_Kind_Constant_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Variable_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Type_Declaration
@@ -2485,15 +2484,6 @@ package body Vhdl.Prints is
Disp_Attribute_Specification (Ctxt, Decl);
when Iir_Kind_Signal_Attribute_Declaration =>
null;
- when Iir_Kind_Anonymous_Signal_Declaration =>
- if False then
- -- Disabled as it is not part of the sources.
- Start_Hbox (Ctxt);
- Disp_Token (Ctxt, Tok_Signal);
- Disp_Ident (Ctxt, Get_Identifier (Decl));
- Disp_Token (Ctxt, Tok_Semi_Colon);
- Close_Hbox (Ctxt);
- end if;
when Iir_Kind_Group_Template_Declaration =>
Disp_Group_Template_Declaration (Ctxt, Decl);
when Iir_Kind_Group_Declaration =>
@@ -4743,21 +4733,6 @@ package body Vhdl.Prints is
when Iir_Kind_Implicit_Dereference =>
Print (Ctxt, Get_Prefix (Expr));
- when Iir_Kind_Anonymous_Signal_Declaration =>
- declare
- Act : constant Iir := Get_Expression (Expr);
- begin
- if Act /= Null_Iir then
- -- There is still an expression, so the anonymous signal
- -- was not yet declared.
- Print (Ctxt, Act);
- else
- -- Cannot use Disp_Identifier as the identifier is not in
- -- the sources.
- Disp_Ident (Ctxt, Get_Identifier (Expr));
- end if;
- end;
-
when Iir_Kind_Left_Type_Attribute =>
Disp_Name_Attribute (Ctxt, Expr, Name_Left);
when Iir_Kind_Right_Type_Attribute =>
diff --git a/src/vhdl/vhdl-sem.adb b/src/vhdl/vhdl-sem.adb
index d223935d3..494d0bd1f 100644
--- a/src/vhdl/vhdl-sem.adb
+++ b/src/vhdl/vhdl-sem.adb
@@ -478,57 +478,6 @@ package body Vhdl.Sem is
Res := Sem_Generic_Association_Chain (Inter_Parent, Assoc_Parent);
end Sem_Generic_Association_Chain;
- -- LRM08 6.5.6.3 Port clauses
- function Sem_Insert_Anonymous_Signal (Formal : Iir; Actual : Iir)
- return Iir
- is
- Sig : Iir;
- Res : Iir;
- begin
- -- LRM08 6.5.6.3 Port clauses
- -- If a formal port of mode IN is associated with an expression that is
- -- not globally static (see 9.4.1) and the formal is of an unconstrained
- -- or partially constrained composite type requiring determination of
- -- index ranges from the actual according to the rules of 5.3.2.2, then
- -- the expression shall be one of the following:
- -- - The name of an object whose subtype is globally static
- -- - An indexed name whose prefix is one of the members of this list
- -- - A slice name whose prefix is one of the members of this list and
- -- whose discrete range is a globally static discrete range
- -- - An aggregate, provided all choices are locally static and all
- -- expressions in element associations are expressions described in
- -- this list
- -- - A function call whose return type mark denotes a globally static
- -- subtype
- -- - A qualified expression or type conversion whose type mark denotes
- -- a globally static subtype
- -- - An expression described in this list and enclosed in parentheses
-
- -- GHDL: FIXME: could this be simplified simply by `subtype is globally
- -- static` ?
- -- FIXME: what about conversions ?
-
- -- Create the anonymous signal.
- Sig := Create_Iir (Iir_Kind_Anonymous_Signal_Declaration);
- Location_Copy (Sig, Actual);
- Set_Expression (Sig, Actual);
- Set_Type (Sig, Get_Type (Formal));
- Set_Expr_Staticness (Sig, None);
-
- -- Declare it.
- Add_Implicit_Declaration (Sig);
-
- -- Return a reference to it.
- -- FIXME: The referenced name is not a name.
- Res := Create_Iir (Iir_Kind_Reference_Name);
- Location_Copy (Res, Actual);
- Set_Referenced_Name (Res, Sig);
- Set_Named_Entity (Res, Sig);
- Set_Type (Res, Get_Type (Sig));
- Set_Expr_Staticness (Res, None);
- return Res;
- end Sem_Insert_Anonymous_Signal;
-
function Sem_Signal_Port_Association
(Assoc : Iir; Formal : Iir; Formal_Base : Iir) return Iir
is
@@ -616,14 +565,8 @@ package body Vhdl.Sem is
-- The actual, if an expression, must be a globally
-- static expression.
if Get_Expr_Staticness (Actual) < Globally then
- if Flags.Vhdl_Std >= Vhdl_08 then
+ if Flags.Vhdl_Std < Vhdl_08 then
-- LRM08 6.5.6.3 Port clauses
- if False then
- Actual := Sem_Insert_Anonymous_Signal (Formal, Actual);
- Set_Actual (Assoc, Actual);
- Set_Collapse_Signal_Flag (Assoc, True);
- end if;
- else
Error_Msg_Sem
(+Actual, "actual expression must be globally static");
end if;
diff --git a/src/vhdl/vhdl-sem_decls.adb b/src/vhdl/vhdl-sem_decls.adb
index 913d889fc..19fd36b75 100644
--- a/src/vhdl/vhdl-sem_decls.adb
+++ b/src/vhdl/vhdl-sem_decls.adb
@@ -131,22 +131,6 @@ package body Vhdl.Sem_Decls is
end if;
end Insert_Pending_Implicit_Declarations;
- procedure Add_Implicit_Declaration (Sig : Iir) is
- begin
- -- Only for anonymous signals, which appear in instantiations (so
- -- once the declarations have been analyzed).
- pragma Assert (Get_Kind (Sig) = Iir_Kind_Anonymous_Signal_Declaration);
- pragma Assert (Current_Signals_Region.Decls_Analyzed);
-
- if Current_Signals_Region.Last_Decl = Null_Iir then
- Set_Declaration_Chain (Current_Signals_Region.Decls_Parent, Sig);
- else
- Set_Chain (Current_Signals_Region.Last_Decl, Sig);
- end if;
- Current_Signals_Region.Last_Decl := Sig;
- Set_Parent (Sig, Current_Signals_Region.Decls_Parent);
- end Add_Implicit_Declaration;
-
-- Mark the end of declaration analysis. New implicit declarations will
-- simply be appended to the last declaration.
procedure End_Of_Declarations_For_Implicit_Declarations
diff --git a/src/vhdl/vhdl-sem_decls.ads b/src/vhdl/vhdl-sem_decls.ads
index 1c283af84..a6f36cd10 100644
--- a/src/vhdl/vhdl-sem_decls.ads
+++ b/src/vhdl/vhdl-sem_decls.ads
@@ -93,10 +93,6 @@ package Vhdl.Sem_Decls is
-- signal attribute is analyzed.
procedure Add_Declaration_For_Implicit_Signal (Sig : Iir);
- -- Append declaration SIG (for an anonymous signal) to the current
- -- declarative part.
- procedure Add_Implicit_Declaration (Sig : Iir);
-
private
type Implicit_Signal_Declaration_Type is record
-- Declaration or statement than will contain implicit declarations.
diff --git a/src/vhdl/vhdl-sem_scopes.adb b/src/vhdl/vhdl-sem_scopes.adb
index 099a9c62a..945ac57bb 100644
--- a/src/vhdl/vhdl-sem_scopes.adb
+++ b/src/vhdl/vhdl-sem_scopes.adb
@@ -1113,8 +1113,7 @@ package body Vhdl.Sem_Scopes is
| Iir_Kind_Disconnection_Specification =>
null;
when Iir_Kinds_Signal_Attribute
- | Iir_Kind_Signal_Attribute_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration =>
+ | Iir_Kind_Signal_Attribute_Declaration =>
null;
when Iir_Kind_Protected_Type_Body =>
diff --git a/src/vhdl/vhdl-utils.adb b/src/vhdl/vhdl-utils.adb
index dde3aad0c..c18892620 100644
--- a/src/vhdl/vhdl-utils.adb
+++ b/src/vhdl/vhdl-utils.adb
@@ -204,7 +204,6 @@ package body Vhdl.Utils is
return Adecl;
when Iir_Kind_Signal_Declaration
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Interface_Signal_Declaration =>
return Adecl;
when Iir_Kind_Object_Alias_Declaration =>
@@ -320,7 +319,6 @@ package body Vhdl.Utils is
| Iir_Kind_Subtype_Definition
| Iir_Kind_Group_Template_Declaration
| Iir_Kind_Group_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Unaffected_Waveform
| Iir_Kind_Waveform_Element
@@ -392,7 +390,6 @@ package body Vhdl.Utils is
| Iir_Kind_Variable_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Constant_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Free_Quantity_Declaration
| Iir_Kind_Across_Quantity_Declaration
| Iir_Kind_Through_Quantity_Declaration =>
@@ -518,7 +515,6 @@ package body Vhdl.Utils is
when Iir_Kind_Signal_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Guard_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kinds_Signal_Attribute =>
return True;
when Iir_Kind_Object_Alias_Declaration =>