aboutsummaryrefslogtreecommitdiffstats
path: root/src/libraries.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-08-28 10:14:15 +0200
committerTristan Gingold <tgingold@free.fr>2021-08-28 13:22:29 +0200
commit7f05e691acbf37a5ec8b2cbd30c023368db86505 (patch)
tree1673431d70b546ed0f3d778f11345b879ef0ef72 /src/libraries.adb
parentb8b61eb99f0fdd3a04a3c5be53c0892f17c921e9 (diff)
downloadghdl-7f05e691acbf37a5ec8b2cbd30c023368db86505.tar.gz
ghdl-7f05e691acbf37a5ec8b2cbd30c023368db86505.tar.bz2
ghdl-7f05e691acbf37a5ec8b2cbd30c023368db86505.zip
vhdl: handle foreign units in libraries and configuration
Diffstat (limited to 'src/libraries.adb')
-rw-r--r--src/libraries.adb9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libraries.adb b/src/libraries.adb
index 0c79d77d9..70c9d4178 100644
--- a/src/libraries.adb
+++ b/src/libraries.adb
@@ -1114,7 +1114,14 @@ package body Libraries is
while Design_Unit /= Null_Iir loop
Next_Design_Unit := Get_Hash_Chain (Design_Unit);
Design_File := Get_Design_File (Design_Unit);
- Library_Unit := Get_Library_Unit (Design_Unit);
+ case Get_Kind (Design_Unit) is
+ when Iir_Kind_Foreign_Module =>
+ Library_Unit := Design_Unit;
+ when Iir_Kind_Design_Unit =>
+ Library_Unit := Get_Library_Unit (Design_Unit);
+ when others =>
+ raise Internal_Error;
+ end case;
if Get_Identifier (Design_Unit) = Unit_Id
and then Get_Library (Design_File) = Work_Library
and then Is_Same_Library_Unit (New_Library_Unit, Library_Unit)