From 73f999bf34ee4bfc0d88e8a22c2b2a40f3ffc3e3 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 30 Dec 2015 08:22:17 +0100 Subject: Use WORK location for loading the elaborated unit. This sets a real location for error messages. --- src/vhdl/configuration.adb | 3 ++- src/vhdl/errorout.adb | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/vhdl/configuration.adb b/src/vhdl/configuration.adb index a72a254..0d11da3 100644 --- a/src/vhdl/configuration.adb +++ b/src/vhdl/configuration.adb @@ -553,7 +553,8 @@ package body Configuration is Lib_Unit := Get_Library_Unit (Unit); case Get_Kind (Lib_Unit) is when Iir_Kind_Entity_Declaration => - Load_Design_Unit (Unit, Null_Iir); + -- Use WORK as location (should use a command line location ?) + Load_Design_Unit (Unit, Work_Library); Lib_Unit := Get_Library_Unit (Unit); if Secondary_Id /= Null_Identifier then Unit := Find_Secondary_Unit (Unit, Secondary_Id); diff --git a/src/vhdl/errorout.adb b/src/vhdl/errorout.adb index 67969be..0bf2b7f 100644 --- a/src/vhdl/errorout.adb +++ b/src/vhdl/errorout.adb @@ -156,7 +156,13 @@ package body Errorout is Location_To_Position (Loc, File, Line, Col); end if; when Semantic => - Location_To_Position (Loc, File, Line, Col); + if Loc = No_Location then + File := No_Source_File_Entry; + Line := 0; + Col := 0; + else + Location_To_Position (Loc, File, Line, Col); + end if; end case; if Progname then -- cgit