aboutsummaryrefslogtreecommitdiffstats
path: root/src/libraries.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-12-01 04:34:20 +0100
committerTristan Gingold <tgingold@free.fr>2017-12-01 04:35:16 +0100
commitd265cf4189aa50685d68c04675f15c0466b45314 (patch)
tree8a1103873b2bbced33869fe947812d790c97e623 /src/libraries.adb
parent2f9a512ca216f2c8a62e2251d551580ef67d9c8d (diff)
downloadghdl-d265cf4189aa50685d68c04675f15c0466b45314.tar.gz
ghdl-d265cf4189aa50685d68c04675f15c0466b45314.tar.bz2
ghdl-d265cf4189aa50685d68c04675f15c0466b45314.zip
Improve error message in case of circular dependency.
Fix #471
Diffstat (limited to 'src/libraries.adb')
-rw-r--r--src/libraries.adb7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libraries.adb b/src/libraries.adb
index 64471f6b6..02af0647d 100644
--- a/src/libraries.adb
+++ b/src/libraries.adb
@@ -1787,10 +1787,15 @@ package body Libraries is
end Load_Parse_Design_Unit;
-- Load, parse, analyze, back-end a design_unit if necessary.
- procedure Load_Design_Unit (Design_Unit: Iir_Design_Unit; Loc : Iir)
+ procedure Load_Design_Unit (Design_Unit : Iir_Design_Unit; Loc : Iir)
is
Warnings : Warnings_Setting;
begin
+ if Get_Date (Design_Unit) = Date_Replacing then
+ Error_Msg_Sem (+Loc, "circular reference of %n", +Design_Unit);
+ return;
+ end if;
+
if Get_Date_State (Design_Unit) = Date_Disk then
Load_Parse_Design_Unit (Design_Unit, Loc);
end if;