From 71a9d2d734ba1f613ae37fca73c19854751fe5f2 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 23 Apr 2023 09:49:43 +0200 Subject: vhdl-configuration(Find_Top_Entity): avoid a crash after an error --- src/vhdl/vhdl-configuration.adb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vhdl/vhdl-configuration.adb b/src/vhdl/vhdl-configuration.adb index b17a5d2c5..b9fd1bc6c 100644 --- a/src/vhdl/vhdl-configuration.adb +++ b/src/vhdl/vhdl-configuration.adb @@ -923,6 +923,10 @@ package body Vhdl.Configuration is null; end case; + if Nbr_Errors /= 0 then + return Walk_Abort; + end if; + return Walk_Continue; end Add_Entity_Cb; @@ -1061,6 +1065,9 @@ package body Vhdl.Configuration is -- 1. Add all design entities in the name table. Status := Walk_Design_Units (Lib, Add_Entity_Cb'Access); + if Status = Walk_Abort then + return; + end if; pragma Assert (Status = Walk_Continue); -- 2. Walk architecture and configurations, and mark instantiated @@ -1117,6 +1124,10 @@ package body Vhdl.Configuration is begin -- FROM is a library or a design file. Top.Mark_Instantiated_Units (From, Loc); + if Nbr_Errors > 0 then + return Null_Iir; + end if; + Top.Find_First_Top_Entity (From); if Top.Nbr_Top_Entities = 1 then -- cgit v1.2.3