diff options
-rw-r--r-- | src/ghdldrv/ghdlsimul.adb | 10 | ||||
-rw-r--r-- | src/simul/simul-vhdl_elab.adb | 1 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/ghdldrv/ghdlsimul.adb b/src/ghdldrv/ghdlsimul.adb index 41dac66d2..bdc5ef6c8 100644 --- a/src/ghdldrv/ghdlsimul.adb +++ b/src/ghdldrv/ghdlsimul.adb @@ -94,16 +94,16 @@ package body Ghdlsimul is Inst := Elab.Vhdl_Insts.Elab_Top_Unit (Lib_Unit); if Errorout.Nbr_Errors > 0 then - if Grt.Errors.Expect_Failure then - return; - else - raise Errorout.Compilation_Error; - end if; + raise Errorout.Compilation_Error; end if; Simul.Vhdl_Elab.Gather_Processes (Inst); Simul.Vhdl_Elab.Elab_Processes; + if Errorout.Nbr_Errors > 0 then + raise Errorout.Compilation_Error; + end if; + if False then Elab.Vhdl_Debug.Disp_Hierarchy (Inst, False, True); end if; diff --git a/src/simul/simul-vhdl_elab.adb b/src/simul/simul-vhdl_elab.adb index 4296008eb..01cfc6b9a 100644 --- a/src/simul/simul-vhdl_elab.adb +++ b/src/simul/simul-vhdl_elab.adb @@ -984,6 +984,7 @@ package body Simul.Vhdl_Elab is Processes_Table.Table (I).Inst := Proc_Inst; Elab.Vhdl_Decls.Elab_Declarations (Proc_Inst, Get_Declaration_Chain (Proc), True); + exit when Is_Error (Proc_Inst); end if; end loop; Instance_Pool := null; |