aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-07 07:10:49 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-07 10:00:11 +0200
commit5c8b50f69d70f4e2d0a9910a7914245d0796b758 (patch)
tree91959a573b77b22e0af7bc72f1eaa54a835abf24 /src/vhdl/vhdl-nodes.adb
parent23b3cadc1c6b96928f3d0829f8b0c5b7337fcc9c (diff)
downloadghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.tar.gz
ghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.tar.bz2
ghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.zip
vhdl: add support for default in interface subprogram. Fix #2163
Diffstat (limited to 'src/vhdl/vhdl-nodes.adb')
-rw-r--r--src/vhdl/vhdl-nodes.adb32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-nodes.adb b/src/vhdl/vhdl-nodes.adb
index 71914dfd3..9b6329c74 100644
--- a/src/vhdl/vhdl-nodes.adb
+++ b/src/vhdl/vhdl-nodes.adb
@@ -2197,6 +2197,22 @@ package body Vhdl.Nodes is
Set_Field3 (Target, Actual);
end Set_Actual;
+ function Get_Open_Actual (Target : Iir) return Iir is
+ begin
+ pragma Assert (Target /= Null_Iir);
+ pragma Assert (Has_Open_Actual (Get_Kind (Target)),
+ "no field Open_Actual");
+ return Get_Field3 (Target);
+ end Get_Open_Actual;
+
+ procedure Set_Open_Actual (Target : Iir; Actual : Iir) is
+ begin
+ pragma Assert (Target /= Null_Iir);
+ pragma Assert (Has_Open_Actual (Get_Kind (Target)),
+ "no field Open_Actual");
+ Set_Field3 (Target, Actual);
+ end Set_Open_Actual;
+
function Get_Actual_Conversion (Target : Iir) return Iir is
begin
pragma Assert (Target /= Null_Iir);
@@ -3132,6 +3148,22 @@ package body Vhdl.Nodes is
Set_Field5 (Target, Chain);
end Set_Interface_Declaration_Chain;
+ function Get_Default_Subprogram (Inter : Iir) return Iir is
+ begin
+ pragma Assert (Inter /= Null_Iir);
+ pragma Assert (Has_Default_Subprogram (Get_Kind (Inter)),
+ "no field Default_Subprogram");
+ return Get_Field9 (Inter);
+ end Get_Default_Subprogram;
+
+ procedure Set_Default_Subprogram (Inter : Iir; Subprg : Iir) is
+ begin
+ pragma Assert (Inter /= Null_Iir);
+ pragma Assert (Has_Default_Subprogram (Get_Kind (Inter)),
+ "no field Default_Subprogram");
+ Set_Field9 (Inter, Subprg);
+ end Set_Default_Subprogram;
+
function Get_Subprogram_Specification (Target : Iir) return Iir is
begin
pragma Assert (Target /= Null_Iir);