aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-06-25 18:53:43 +0200
committerTristan Gingold <tgingold@free.fr>2020-06-25 18:53:43 +0200
commit366c04ab365cad2544fd39d3ce72e0f1c9ae1d29 (patch)
treea6ff0ca837ac06b06daa30193dae9f3966be84ed /src
parent71bafde697314d92bf73f9bccc14e49550260bf1 (diff)
downloadghdl-366c04ab365cad2544fd39d3ce72e0f1c9ae1d29.tar.gz
ghdl-366c04ab365cad2544fd39d3ce72e0f1c9ae1d29.tar.bz2
ghdl-366c04ab365cad2544fd39d3ce72e0f1c9ae1d29.zip
vhdl: avoid crash on error for -c/-r.
Diffstat (limited to 'src')
-rw-r--r--src/ghdldrv/ghdlcomp.adb4
-rw-r--r--src/vhdl/vhdl-configuration.adb4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/ghdldrv/ghdlcomp.adb b/src/ghdldrv/ghdlcomp.adb
index 560a5ffd2..c58360aee 100644
--- a/src/ghdldrv/ghdlcomp.adb
+++ b/src/ghdldrv/ghdlcomp.adb
@@ -326,7 +326,9 @@ package body Ghdlcomp is
Flags.Flag_Elaborate := True;
Config := Vhdl.Configuration.Configure (Prim_Id, Sec_Id);
- if Config = Null_Iir then
+ if Config = Null_Iir
+ or else Errorout.Nbr_Errors > 0
+ then
raise Compilation_Error;
end if;
diff --git a/src/vhdl/vhdl-configuration.adb b/src/vhdl/vhdl-configuration.adb
index ad3fdc6a1..0f5c63b62 100644
--- a/src/vhdl/vhdl-configuration.adb
+++ b/src/vhdl/vhdl-configuration.adb
@@ -162,7 +162,9 @@ package body Vhdl.Configuration is
Add_Design_Block_Configuration (Blk);
Current_Configuration := Prev_Configuration;
Arch := Strip_Denoting_Name (Get_Block_Specification (Blk));
- Add_Design_Unit (Get_Design_Unit (Arch), Loc);
+ if Arch /= Null_Iir then
+ Add_Design_Unit (Get_Design_Unit (Arch), Loc);
+ end if;
end;
when Iir_Kind_Architecture_Body =>
-- Add entity