aboutsummaryrefslogtreecommitdiffstats
path: root/src/ghdldrv/ghdlprint.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-11-25 20:07:00 +0100
committerTristan Gingold <tgingold@free.fr>2018-11-26 20:19:15 +0100
commit44404214d370d226428e315da946d41ccf141507 (patch)
tree5741a66f5e0def695965664dbe0397e309a2cfad /src/ghdldrv/ghdlprint.adb
parentd570ee98eaa200cc1bbf481035aa3bb1680504db (diff)
downloadghdl-44404214d370d226428e315da946d41ccf141507.tar.gz
ghdl-44404214d370d226428e315da946d41ccf141507.tar.bz2
ghdl-44404214d370d226428e315da946d41ccf141507.zip
Keep source file entry in design file to avoid searching the file.
Diffstat (limited to 'src/ghdldrv/ghdlprint.adb')
-rw-r--r--src/ghdldrv/ghdlprint.adb6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ghdldrv/ghdlprint.adb b/src/ghdldrv/ghdlprint.adb
index 29d7f7e29..ce0433204 100644
--- a/src/ghdldrv/ghdlprint.adb
+++ b/src/ghdldrv/ghdlprint.adb
@@ -559,6 +559,8 @@ package body Ghdlprint is
pragma Unreferenced (Cmd);
use Ada.Characters.Latin_1;
+ Files : Iir_Array (Args'Range);
+
function Build_File_Name_Length (Lib : Iir) return Natural
is
Id : constant Name_Id := Get_Identifier (Lib);
@@ -682,6 +684,7 @@ package body Ghdlprint is
if Design_File = Null_Iir then
raise Compile_Error;
end if;
+ Files (I) := Design_File;
Unit := Get_First_Design_Unit (Design_File);
while Unit /= Null_Iir loop
Lib := Get_Library_Unit (Unit);
@@ -707,8 +710,7 @@ package body Ghdlprint is
-- Second loop: do the real work.
for I in Args'Range loop
- Id := Get_Identifier (Args (I).all);
- Design_File := Load_File (Id);
+ Design_File := Files (I);
Unit := Get_First_Design_Unit (Design_File);
declare
use Files_Map;