aboutsummaryrefslogtreecommitdiffstats
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
parent839ac8635cca825618163cadcb9a7734e43172b9 (diff)
downloadghdl-8dce98079531f7b222340fb53373cd43c9939ff1.tar.gz
ghdl-8dce98079531f7b222340fb53373cd43c9939ff1.tar.bz2
ghdl-8dce98079531f7b222340fb53373cd43c9939ff1.zip
vhdl: remove iir_kind_anonymous_signal_declaration (now unused)
-rw-r--r--pyGHDL/libghdl/vhdl/nodes.py359
-rw-r--r--src/synth/synth-vhdl_decls.adb6
-rw-r--r--src/synth/synth-vhdl_expr.adb3
-rw-r--r--src/synth/synth-vhdl_insts.adb8
-rw-r--r--src/synth/synth-vhdl_stmts.adb2
-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
23 files changed, 377 insertions, 643 deletions
diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py
index 173cbf3d9..187d49072 100644
--- a/pyGHDL/libghdl/vhdl/nodes.py
+++ b/pyGHDL/libghdl/vhdl/nodes.py
@@ -183,186 +183,185 @@ class Iir_Kind(IntEnum):
Interface_Package_Declaration = 136
Interface_Function_Declaration = 137
Interface_Procedure_Declaration = 138
- Anonymous_Signal_Declaration = 139
- Signal_Attribute_Declaration = 140
- Identity_Operator = 141
- Negation_Operator = 142
- Absolute_Operator = 143
- Not_Operator = 144
- Implicit_Condition_Operator = 145
- Condition_Operator = 146
- Reduction_And_Operator = 147
- Reduction_Or_Operator = 148
- Reduction_Nand_Operator = 149
- Reduction_Nor_Operator = 150
- Reduction_Xor_Operator = 151
- Reduction_Xnor_Operator = 152
- And_Operator = 153
- Or_Operator = 154
- Nand_Operator = 155
- Nor_Operator = 156
- Xor_Operator = 157
- Xnor_Operator = 158
- Equality_Operator = 159
- Inequality_Operator = 160
- Less_Than_Operator = 161
- Less_Than_Or_Equal_Operator = 162
- Greater_Than_Operator = 163
- Greater_Than_Or_Equal_Operator = 164
- Match_Equality_Operator = 165
- Match_Inequality_Operator = 166
- Match_Less_Than_Operator = 167
- Match_Less_Than_Or_Equal_Operator = 168
- Match_Greater_Than_Operator = 169
- Match_Greater_Than_Or_Equal_Operator = 170
- Sll_Operator = 171
- Sla_Operator = 172
- Srl_Operator = 173
- Sra_Operator = 174
- Rol_Operator = 175
- Ror_Operator = 176
- Addition_Operator = 177
- Substraction_Operator = 178
- Concatenation_Operator = 179
- Multiplication_Operator = 180
- Division_Operator = 181
- Modulus_Operator = 182
- Remainder_Operator = 183
- Exponentiation_Operator = 184
- Function_Call = 185
- Aggregate = 186
- Parenthesis_Expression = 187
- Qualified_Expression = 188
- Type_Conversion = 189
- Allocator_By_Expression = 190
- Allocator_By_Subtype = 191
- Selected_Element = 192
- Dereference = 193
- Implicit_Dereference = 194
- Slice_Name = 195
- Indexed_Name = 196
- Psl_Prev = 197
- Psl_Stable = 198
- Psl_Rose = 199
- Psl_Fell = 200
- Psl_Onehot = 201
- Psl_Onehot0 = 202
- Psl_Expression = 203
- Sensitized_Process_Statement = 204
- Process_Statement = 205
- Concurrent_Simple_Signal_Assignment = 206
- Concurrent_Conditional_Signal_Assignment = 207
- Concurrent_Selected_Signal_Assignment = 208
- Concurrent_Assertion_Statement = 209
- Concurrent_Procedure_Call_Statement = 210
- Concurrent_Break_Statement = 211
- Psl_Assert_Directive = 212
- Psl_Assume_Directive = 213
- Psl_Cover_Directive = 214
- Psl_Restrict_Directive = 215
- Block_Statement = 216
- If_Generate_Statement = 217
- Case_Generate_Statement = 218
- For_Generate_Statement = 219
- Component_Instantiation_Statement = 220
- Psl_Default_Clock = 221
- Generate_Statement_Body = 222
- If_Generate_Else_Clause = 223
- Simple_Simultaneous_Statement = 224
- Simultaneous_Null_Statement = 225
- Simultaneous_Procedural_Statement = 226
- Simultaneous_Case_Statement = 227
- Simultaneous_If_Statement = 228
- Simultaneous_Elsif = 229
- Simple_Signal_Assignment_Statement = 230
- Conditional_Signal_Assignment_Statement = 231
- Selected_Waveform_Assignment_Statement = 232
- Signal_Force_Assignment_Statement = 233
- Signal_Release_Assignment_Statement = 234
- Null_Statement = 235
- Assertion_Statement = 236
- Report_Statement = 237
- Wait_Statement = 238
- Variable_Assignment_Statement = 239
- Conditional_Variable_Assignment_Statement = 240
- Return_Statement = 241
- For_Loop_Statement = 242
- While_Loop_Statement = 243
- Next_Statement = 244
- Exit_Statement = 245
- Case_Statement = 246
- Procedure_Call_Statement = 247
- Break_Statement = 248
- If_Statement = 249
- Elsif = 250
- Character_Literal = 251
- Simple_Name = 252
- Selected_Name = 253
- Operator_Symbol = 254
- Reference_Name = 255
- External_Constant_Name = 256
- External_Signal_Name = 257
- External_Variable_Name = 258
- Selected_By_All_Name = 259
- Parenthesis_Name = 260
- Package_Pathname = 261
- Absolute_Pathname = 262
- Relative_Pathname = 263
- Pathname_Element = 264
- Base_Attribute = 265
- Subtype_Attribute = 266
- Element_Attribute = 267
- Across_Attribute = 268
- Through_Attribute = 269
- Nature_Reference_Attribute = 270
- Left_Type_Attribute = 271
- Right_Type_Attribute = 272
- High_Type_Attribute = 273
- Low_Type_Attribute = 274
- Ascending_Type_Attribute = 275
- Image_Attribute = 276
- Value_Attribute = 277
- Pos_Attribute = 278
- Val_Attribute = 279
- Succ_Attribute = 280
- Pred_Attribute = 281
- Leftof_Attribute = 282
- Rightof_Attribute = 283
- Signal_Slew_Attribute = 284
- Quantity_Slew_Attribute = 285
- Ramp_Attribute = 286
- Zoh_Attribute = 287
- Ltf_Attribute = 288
- Ztf_Attribute = 289
- Dot_Attribute = 290
- Integ_Attribute = 291
- Above_Attribute = 292
- Quantity_Delayed_Attribute = 293
- Delayed_Attribute = 294
- Stable_Attribute = 295
- Quiet_Attribute = 296
- Transaction_Attribute = 297
- Event_Attribute = 298
- Active_Attribute = 299
- Last_Event_Attribute = 300
- Last_Active_Attribute = 301
- Last_Value_Attribute = 302
- Driving_Attribute = 303
- Driving_Value_Attribute = 304
- Behavior_Attribute = 305
- Structure_Attribute = 306
- Simple_Name_Attribute = 307
- Instance_Name_Attribute = 308
- Path_Name_Attribute = 309
- Left_Array_Attribute = 310
- Right_Array_Attribute = 311
- High_Array_Attribute = 312
- Low_Array_Attribute = 313
- Length_Array_Attribute = 314
- Ascending_Array_Attribute = 315
- Range_Array_Attribute = 316
- Reverse_Range_Array_Attribute = 317
- Attribute_Name = 318
+ Signal_Attribute_Declaration = 139
+ Identity_Operator = 140
+ Negation_Operator = 141
+ Absolute_Operator = 142
+ Not_Operator = 143
+ Implicit_Condition_Operator = 144
+ Condition_Operator = 145
+ Reduction_And_Operator = 146
+ Reduction_Or_Operator = 147
+ Reduction_Nand_Operator = 148
+ Reduction_Nor_Operator = 149
+ Reduction_Xor_Operator = 150
+ Reduction_Xnor_Operator = 151
+ And_Operator = 152
+ Or_Operator = 153
+ Nand_Operator = 154
+ Nor_Operator = 155
+ Xor_Operator = 156
+ Xnor_Operator = 157
+ Equality_Operator = 158
+ Inequality_Operator = 159
+ Less_Than_Operator = 160
+ Less_Than_Or_Equal_Operator = 161
+ Greater_Than_Operator = 162
+ Greater_Than_Or_Equal_Operator = 163
+ Match_Equality_Operator = 164
+ Match_Inequality_Operator = 165
+ Match_Less_Than_Operator = 166
+ Match_Less_Than_Or_Equal_Operator = 167
+ Match_Greater_Than_Operator = 168
+ Match_Greater_Than_Or_Equal_Operator = 169
+ Sll_Operator = 170
+ Sla_Operator = 171
+ Srl_Operator = 172
+ Sra_Operator = 173
+ Rol_Operator = 174
+ Ror_Operator = 175
+ Addition_Operator = 176
+ Substraction_Operator = 177
+ Concatenation_Operator = 178
+ Multiplication_Operator = 179
+ Division_Operator = 180
+ Modulus_Operator = 181
+ Remainder_Operator = 182
+ Exponentiation_Operator = 183
+ Function_Call = 184
+ Aggregate = 185
+ Parenthesis_Expression = 186
+ Qualified_Expression = 187
+ Type_Conversion = 188
+ Allocator_By_Expression = 189
+ Allocator_By_Subtype = 190
+ Selected_Element = 191
+ Dereference = 192
+ Implicit_Dereference = 193
+ Slice_Name = 194
+ Indexed_Name = 195
+ Psl_Prev = 196
+ Psl_Stable = 197
+ Psl_Rose = 198
+ Psl_Fell = 199
+ Psl_Onehot = 200
+ Psl_Onehot0 = 201
+ Psl_Expression = 202
+ Sensitized_Process_Statement = 203
+ Process_Statement = 204
+ Concurrent_Simple_Signal_Assignment = 205
+ Concurrent_Conditional_Signal_Assignment = 206
+ Concurrent_Selected_Signal_Assignment = 207
+ Concurrent_Assertion_Statement = 208
+ Concurrent_Procedure_Call_Statement = 209
+ Concurrent_Break_Statement = 210
+ Psl_Assert_Directive = 211
+ Psl_Assume_Directive = 212
+ Psl_Cover_Directive = 213
+ Psl_Restrict_Directive = 214
+ Block_Statement = 215
+ If_Generate_Statement = 216
+ Case_Generate_Statement = 217
+ For_Generate_Statement = 218
+ Component_Instantiation_Statement = 219
+ Psl_Default_Clock = 220
+ Generate_Statement_Body = 221
+ If_Generate_Else_Clause = 222
+ Simple_Simultaneous_Statement = 223
+ Simultaneous_Null_Statement = 224
+ Simultaneous_Procedural_Statement = 225
+ Simultaneous_Case_Statement = 226
+ Simultaneous_If_Statement = 227
+ Simultaneous_Elsif = 228
+ Simple_Signal_Assignment_Statement = 229
+ Conditional_Signal_Assignment_Statement = 230
+ Selected_Waveform_Assignment_Statement = 231
+ Signal_Force_Assignment_Statement = 232
+ Signal_Release_Assignment_Statement = 233
+ Null_Statement = 234
+ Assertion_Statement = 235
+ Report_Statement = 236
+ Wait_Statement = 237
+ Variable_Assignment_Statement = 238
+ Conditional_Variable_Assignment_Statement = 239
+ Return_Statement = 240
+ For_Loop_Statement = 241
+ While_Loop_Statement = 242
+ Next_Statement = 243
+ Exit_Statement = 244
+ Case_Statement = 245
+ Procedure_Call_Statement = 246
+ Break_Statement = 247
+ If_Statement = 248
+ Elsif = 249
+ Character_Literal = 250
+ Simple_Name = 251
+ Selected_Name = 252
+ Operator_Symbol = 253
+ Reference_Name = 254
+ External_Constant_Name = 255
+ External_Signal_Name = 256
+ External_Variable_Name = 257
+ Selected_By_All_Name = 258
+ Parenthesis_Name = 259
+ Package_Pathname = 260
+ Absolute_Pathname = 261
+ Relative_Pathname = 262
+ Pathname_Element = 263
+ Base_Attribute = 264
+ Subtype_Attribute = 265
+ Element_Attribute = 266
+ Across_Attribute = 267
+ Through_Attribute = 268
+ Nature_Reference_Attribute = 269
+ Left_Type_Attribute = 270
+ Right_Type_Attribute = 271
+ High_Type_Attribute = 272
+ Low_Type_Attribute = 273
+ Ascending_Type_Attribute = 274
+ Image_Attribute = 275
+ Value_Attribute = 276
+ Pos_Attribute = 277
+ Val_Attribute = 278
+ Succ_Attribute = 279
+ Pred_Attribute = 280
+ Leftof_Attribute = 281
+ Rightof_Attribute = 282
+ Signal_Slew_Attribute = 283
+ Quantity_Slew_Attribute = 284
+ Ramp_Attribute = 285
+ Zoh_Attribute = 286
+ Ltf_Attribute = 287
+ Ztf_Attribute = 288
+ Dot_Attribute = 289
+ Integ_Attribute = 290
+ Above_Attribute = 291
+ Quantity_Delayed_Attribute = 292
+ Delayed_Attribute = 293
+ Stable_Attribute = 294
+ Quiet_Attribute = 295
+ Transaction_Attribute = 296
+ Event_Attribute = 297
+ Active_Attribute = 298
+ Last_Event_Attribute = 299
+ Last_Active_Attribute = 300
+ Last_Value_Attribute = 301
+ Driving_Attribute = 302
+ Driving_Value_Attribute = 303
+ Behavior_Attribute = 304
+ Structure_Attribute = 305
+ Simple_Name_Attribute = 306
+ Instance_Name_Attribute = 307
+ Path_Name_Attribute = 308
+ Left_Array_Attribute = 309
+ Right_Array_Attribute = 310
+ High_Array_Attribute = 311
+ Low_Array_Attribute = 312
+ Length_Array_Attribute = 313
+ Ascending_Array_Attribute = 314
+ Range_Array_Attribute = 315
+ Reverse_Range_Array_Attribute = 316
+ Attribute_Name = 317
@export
diff --git a/src/synth/synth-vhdl_decls.adb b/src/synth/synth-vhdl_decls.adb
index 7507d21b0..779c802c1 100644
--- a/src/synth/synth-vhdl_decls.adb
+++ b/src/synth/synth-vhdl_decls.adb
@@ -1013,10 +1013,6 @@ package body Synth.Vhdl_Decls is
Synth_Signal_Declaration (Syn_Inst, Decl);
when Iir_Kind_Object_Alias_Declaration =>
Synth_Object_Alias_Declaration (Syn_Inst, Decl);
- when Iir_Kind_Anonymous_Signal_Declaration =>
- -- Anonymous signals created by inertial associations are
- -- simply ignored.
- null;
when Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Declaration =>
Synth_Subprogram_Declaration (Syn_Inst, Decl);
@@ -1172,8 +1168,6 @@ package body Synth.Vhdl_Decls is
| Iir_Kind_Interface_Signal_Declaration =>
pragma Assert (not Is_Subprg);
Finalize_Signal (Syn_Inst, Decl);
- when Iir_Kind_Anonymous_Signal_Declaration =>
- null;
when Iir_Kind_Object_Alias_Declaration =>
null;
when Iir_Kind_Procedure_Declaration
diff --git a/src/synth/synth-vhdl_expr.adb b/src/synth/synth-vhdl_expr.adb
index 72f3103af..4e6c2b33e 100644
--- a/src/synth/synth-vhdl_expr.adb
+++ b/src/synth/synth-vhdl_expr.adb
@@ -2300,9 +2300,6 @@ package body Synth.Vhdl_Expr is
-- Only used for anonymous signals in internal association.
return Synth_Expression_With_Type
(Syn_Inst, Get_Named_Entity (Expr), Expr_Type);
- when Iir_Kind_Anonymous_Signal_Declaration =>
- return Synth_Expression_With_Type
- (Syn_Inst, Get_Expression (Expr), Expr_Type);
when Iir_Kind_Indexed_Name
| Iir_Kind_Slice_Name =>
declare
diff --git a/src/synth/synth-vhdl_insts.adb b/src/synth/synth-vhdl_insts.adb
index 06ec882be..df943e782 100644
--- a/src/synth/synth-vhdl_insts.adb
+++ b/src/synth/synth-vhdl_insts.adb
@@ -775,14 +775,6 @@ package body Synth.Vhdl_Insts is
when Iir_Kind_Association_Element_By_Expression
| Iir_Kind_Association_Element_By_Name =>
Actual := Get_Actual (Assoc);
- if Get_Kind (Actual) = Iir_Kind_Reference_Name then
- -- Skip inserted anonymous signal declaration.
- -- FIXME: simply do not insert it ?
- Actual := Get_Named_Entity (Actual);
- pragma Assert
- (Get_Kind (Actual) = Iir_Kind_Anonymous_Signal_Declaration);
- Actual := Get_Expression (Actual);
- end if;
Act_Inst := Syn_Inst;
when Iir_Kind_Association_Element_By_Individual =>
return Synth_Individual_Input_Assoc (Syn_Inst, Assoc, Inter_Inst);
diff --git a/src/synth/synth-vhdl_stmts.adb b/src/synth/synth-vhdl_stmts.adb
index 544b4ebf4..2634af688 100644
--- a/src/synth/synth-vhdl_stmts.adb
+++ b/src/synth/synth-vhdl_stmts.adb
@@ -107,7 +107,6 @@ package body Synth.Vhdl_Stmts is
| Iir_Kind_Variable_Declaration
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Constant_Declaration
| Iir_Kind_File_Declaration
@@ -369,7 +368,6 @@ package body Synth.Vhdl_Stmts is
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Variable_Declaration
| Iir_Kind_Signal_Declaration
- | Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Indexed_Name
| Iir_Kind_Slice_Name
| Iir_Kind_Dereference =>
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 =>