diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-08-07 07:10:49 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-08-07 10:00:11 +0200 |
commit | 5c8b50f69d70f4e2d0a9910a7914245d0796b758 (patch) | |
tree | 91959a573b77b22e0af7bc72f1eaa54a835abf24 /src/vhdl/vhdl-nodes.adb | |
parent | 23b3cadc1c6b96928f3d0829f8b0c5b7337fcc9c (diff) | |
download | ghdl-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.adb | 32 |
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); |