aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-insts.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-03-25 12:39:53 +0100
committerTristan Gingold <tgingold@free.fr>2020-03-25 12:39:53 +0100
commit60a469e6b5f3a6df29558e8e98fdc5510886dee3 (patch)
tree15a0b0999c931b927006d97c9a19ec8dc00c19ef /src/synth/synth-insts.adb
parent88430d7566d72714268f6be31e542600745a1036 (diff)
downloadghdl-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.adb24
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));