diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-03-27 08:13:31 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-03-27 08:13:31 +0100 |
commit | b004cea2d392fb28110a970e009590afb0ce457e (patch) | |
tree | 71b547be4f6f672ad6f61a7d82dfbc8886153fb2 | |
parent | 798c9aa771f363a2129950c4873eb94a185e5ec3 (diff) | |
download | ghdl-b004cea2d392fb28110a970e009590afb0ce457e.tar.gz ghdl-b004cea2d392fb28110a970e009590afb0ce457e.tar.bz2 ghdl-b004cea2d392fb28110a970e009590afb0ce457e.zip |
synth: improve fatal error propagation.
-rw-r--r-- | src/synth/synth-oper.adb | 3 | ||||
-rw-r--r-- | src/synth/synth-stmts.adb | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb index ed962e378..d99e0f836 100644 --- a/src/synth/synth-oper.adb +++ b/src/synth/synth-oper.adb @@ -1348,6 +1348,9 @@ package body Synth.Oper is end Synth_Vec_Reduce_Monadic; begin Operand := Synth_Expression_With_Type (Syn_Inst, Operand_Expr, Oper_Typ); + if Operand = null then + return null; + end if; Operand := Synth_Subtype_Conversion (Operand, Oper_Typ, False, Loc); Strip_Const (Operand); diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index 8716dd691..b6147ddb3 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -628,6 +628,10 @@ package body Synth.Stmts is Targ := Synth_Target (Syn_Inst, Get_Target (Stmt)); Val := Synth_Expression_With_Type (Syn_Inst, Get_Expression (Stmt), Targ.Targ_Type); + if Val = null then + Set_Error (Syn_Inst); + return; + end if; Synth_Assignment (Syn_Inst, Targ, Val, Stmt); end Synth_Variable_Assignment; |