aboutsummaryrefslogtreecommitdiffstats
path: root/src/ghdldrv
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-09-26 20:40:24 +0200
committerTristan Gingold <tgingold@free.fr>2016-09-27 02:27:51 +0200
commitf44b3c78755e01a9bd7fd9b639a08711b7c52660 (patch)
treec3bd192c03ce9d5403288c330e21e8c7811a08a9 /src/ghdldrv
parent080c7dd9329aa90d4d797f638bb34312487cd496 (diff)
downloadghdl-f44b3c78755e01a9bd7fd9b639a08711b7c52660.tar.gz
ghdl-f44b3c78755e01a9bd7fd9b639a08711b7c52660.tar.bz2
ghdl-f44b3c78755e01a9bd7fd9b639a08711b7c52660.zip
vhdl08: more support for interface subprograms.
Diffstat (limited to 'src/ghdldrv')
-rw-r--r--src/ghdldrv/ghdllocal.adb8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ghdldrv/ghdllocal.adb b/src/ghdldrv/ghdllocal.adb
index 0d4c035e0..082c2e438 100644
--- a/src/ghdldrv/ghdllocal.adb
+++ b/src/ghdldrv/ghdllocal.adb
@@ -19,6 +19,8 @@ with Ada.Text_IO; use Ada.Text_IO;
with Ada.Command_Line; use Ada.Command_Line;
with GNAT.Directory_Operations;
with Types; use Types;
+with Iir_Chains;
+with Nodes_Meta;
with Libraries;
with Std_Package;
with Flags;
@@ -100,6 +102,12 @@ package body Ghdllocal is
-- Create the bodies for instances
Set_Package_Instantiation_Bodies_Chain
(Lib_Unit, Canon.Create_Instantiation_Bodies (Lib_Unit));
+ elsif Get_Kind (Lib_Unit) = Iir_Kind_Package_Body
+ and then Get_Need_Instance_Bodies (Get_Package (Lib_Unit))
+ then
+ Iir_Chains.Append_Chain
+ (Lib_Unit, Nodes_Meta.Field_Declaration_Chain,
+ Canon.Create_Instantiation_Bodies (Get_Package (Lib_Unit)));
end if;
if (Main or Flags.List_All) and then Flags.List_Canon then