aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/iirs.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-08 04:53:25 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-08 14:57:24 +0200
commit8b090b01da269679e98a578f4fda17e3e4adce12 (patch)
tree8d3284a5aacde88d6662300d87abf645065d8e16 /src/vhdl/iirs.adb
parent120548782cb62cc5d8f82b1569e2383a8528b98a (diff)
downloadghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.gz
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.bz2
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.zip
Add signal_attribute_declaration to hold implicit atribute signals.
Diffstat (limited to 'src/vhdl/iirs.adb')
-rw-r--r--src/vhdl/iirs.adb49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/vhdl/iirs.adb b/src/vhdl/iirs.adb
index 06ee9a305..5e940d3ac 100644
--- a/src/vhdl/iirs.adb
+++ b/src/vhdl/iirs.adb
@@ -338,6 +338,7 @@ package body Iirs is
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
| Iir_Kind_Interface_Type_Declaration
+ | Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
| Iir_Kind_Absolute_Operator
@@ -3937,6 +3938,22 @@ package body Iirs is
Set_Field4 (Guard, Iir_List_To_Iir (List));
end Set_Guard_Sensitivity_List;
+ function Get_Signal_Attribute_Chain (Decl : Iir) return Iir is
+ begin
+ pragma Assert (Decl /= Null_Iir);
+ pragma Assert (Has_Signal_Attribute_Chain (Get_Kind (Decl)),
+ "no field Signal_Attribute_Chain");
+ return Get_Field3 (Decl);
+ end Get_Signal_Attribute_Chain;
+
+ procedure Set_Signal_Attribute_Chain (Decl : Iir; Chain : Iir) is
+ begin
+ pragma Assert (Decl /= Null_Iir);
+ pragma Assert (Has_Signal_Attribute_Chain (Get_Kind (Decl)),
+ "no field Signal_Attribute_Chain");
+ Set_Field3 (Decl, Chain);
+ end Set_Signal_Attribute_Chain;
+
function Get_Block_Block_Configuration (Block : Iir) return Iir is
begin
pragma Assert (Block /= Null_Iir);
@@ -4579,6 +4596,38 @@ package body Iirs is
Set_Field4 (Target, Param);
end Set_Parameter;
+ function Get_Attr_Chain (Attr : Iir) return Iir is
+ begin
+ pragma Assert (Attr /= Null_Iir);
+ pragma Assert (Has_Attr_Chain (Get_Kind (Attr)),
+ "no field Attr_Chain");
+ return Get_Field2 (Attr);
+ end Get_Attr_Chain;
+
+ procedure Set_Attr_Chain (Attr : Iir; Chain : Iir) is
+ begin
+ pragma Assert (Attr /= Null_Iir);
+ pragma Assert (Has_Attr_Chain (Get_Kind (Attr)),
+ "no field Attr_Chain");
+ Set_Field2 (Attr, Chain);
+ end Set_Attr_Chain;
+
+ function Get_Signal_Attribute_Declaration (Attr : Iir) return Iir is
+ begin
+ pragma Assert (Attr /= Null_Iir);
+ pragma Assert (Has_Signal_Attribute_Declaration (Get_Kind (Attr)),
+ "no field Signal_Attribute_Declaration");
+ return Get_Field3 (Attr);
+ end Get_Signal_Attribute_Declaration;
+
+ procedure Set_Signal_Attribute_Declaration (Attr : Iir; Decl : Iir) is
+ begin
+ pragma Assert (Attr /= Null_Iir);
+ pragma Assert (Has_Signal_Attribute_Declaration (Get_Kind (Attr)),
+ "no field Signal_Attribute_Declaration");
+ Set_Field3 (Attr, Decl);
+ end Set_Signal_Attribute_Declaration;
+
function Get_Actual_Type (Target : Iir) return Iir is
begin
pragma Assert (Target /= Null_Iir);