diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-03-25 12:39:53 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-03-25 12:39:53 +0100 |
commit | 60a469e6b5f3a6df29558e8e98fdc5510886dee3 (patch) | |
tree | 15a0b0999c931b927006d97c9a19ec8dc00c19ef /src/synth/synth-insts.adb | |
parent | 88430d7566d72714268f6be31e542600745a1036 (diff) | |
download | ghdl-60a469e6b5f3a6df29558e8e98fdc5510886dee3.tar.gz ghdl-60a469e6b5f3a6df29558e8e98fdc5510886dee3.tar.bz2 ghdl-60a469e6b5f3a6df29558e8e98fdc5510886dee3.zip |
synth: improve propagation of errors.
Diffstat (limited to 'src/synth/synth-insts.adb')
-rw-r--r-- | src/synth/synth-insts.adb | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/synth/synth-insts.adb b/src/synth/synth-insts.adb index 18c23b8bb..797033bb8 100644 --- a/src/synth/synth-insts.adb +++ b/src/synth/synth-insts.adb @@ -1426,15 +1426,25 @@ package body Synth.Insts is Apply_Block_Configuration (Inst.Config, Arch); Synth_Declarations (Syn_Inst, Get_Declaration_Chain (Entity)); - Synth_Concurrent_Statements - (Syn_Inst, Get_Concurrent_Statement_Chain (Entity)); + if not Is_Error (Syn_Inst) then + Synth_Concurrent_Statements + (Syn_Inst, Get_Concurrent_Statement_Chain (Entity)); + end if; - Synth_Declarations (Syn_Inst, Get_Declaration_Chain (Arch)); - Synth_Concurrent_Statements - (Syn_Inst, Get_Concurrent_Statement_Chain (Arch)); + if not Is_Error (Syn_Inst) then + Synth_Declarations (Syn_Inst, Get_Declaration_Chain (Arch)); + end if; + if not Is_Error (Syn_Inst) then + Synth_Concurrent_Statements + (Syn_Inst, Get_Concurrent_Statement_Chain (Arch)); + end if; - Synth_Verification_Units (Syn_Inst, Entity); - Synth_Verification_Units (Syn_Inst, Arch); + if not Is_Error (Syn_Inst) then + Synth_Verification_Units (Syn_Inst, Entity); + end if; + if not Is_Error (Syn_Inst) then + Synth_Verification_Units (Syn_Inst, Arch); + end if; Finalize_Assignments (Get_Build (Syn_Inst)); |