diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-11-05 18:51:59 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-11-05 18:51:59 +0100 |
commit | 894b357144b5b84800e970ee952f137485b6fb62 (patch) | |
tree | 7ae6a98fe22ecd708f82670644491c1a0c6765de | |
parent | 50faedfbe23e1ec94a378b8b4285974410e014e7 (diff) | |
download | ghdl-894b357144b5b84800e970ee952f137485b6fb62.tar.gz ghdl-894b357144b5b84800e970ee952f137485b6fb62.tar.bz2 ghdl-894b357144b5b84800e970ee952f137485b6fb62.zip |
vhdl-configuration: stop earlier in case of error. Fix #1908
-rw-r--r-- | src/vhdl/vhdl-configuration.adb | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/vhdl/vhdl-configuration.adb b/src/vhdl/vhdl-configuration.adb index 6eb427af9..cbe12e845 100644 --- a/src/vhdl/vhdl-configuration.adb +++ b/src/vhdl/vhdl-configuration.adb @@ -152,23 +152,25 @@ package body Vhdl.Configuration is -- Add entity and architecture. -- find all sub-configuration Load_Design_Unit (Unit, From); - Lib_Unit := Get_Library_Unit (Unit); - Add_Design_Unit (Get_Design_Unit (Get_Entity (Lib_Unit)), Loc); - declare - Blk : Iir_Block_Configuration; - Prev_Configuration : Iir_Configuration_Declaration; - Arch : Iir; - begin - Prev_Configuration := Current_Configuration; - Current_Configuration := Lib_Unit; - Blk := Get_Block_Configuration (Lib_Unit); - Add_Design_Block_Configuration (Blk); - Current_Configuration := Prev_Configuration; - Arch := Strip_Denoting_Name (Get_Block_Specification (Blk)); - if Arch /= Null_Iir then - Add_Design_Unit (Get_Design_Unit (Arch), Loc); - end if; - end; + if Nbr_Errors = 0 then + Lib_Unit := Get_Library_Unit (Unit); + Add_Design_Unit (Get_Design_Unit (Get_Entity (Lib_Unit)), Loc); + declare + Blk : Iir_Block_Configuration; + Prev_Configuration : Iir_Configuration_Declaration; + Arch : Iir; + begin + Prev_Configuration := Current_Configuration; + Current_Configuration := Lib_Unit; + Blk := Get_Block_Configuration (Lib_Unit); + Add_Design_Block_Configuration (Blk); + Current_Configuration := Prev_Configuration; + Arch := Strip_Denoting_Name (Get_Block_Specification (Blk)); + if Arch /= Null_Iir then + Add_Design_Unit (Get_Design_Unit (Arch), Loc); + end if; + end; + end if; when Iir_Kind_Architecture_Body => -- Add entity -- find all entity/architecture/configuration instantiation |