aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-03-27 08:13:31 +0100
committerTristan Gingold <tgingold@free.fr>2020-03-27 08:13:31 +0100
commitb004cea2d392fb28110a970e009590afb0ce457e (patch)
tree71b547be4f6f672ad6f61a7d82dfbc8886153fb2
parent798c9aa771f363a2129950c4873eb94a185e5ec3 (diff)
downloadghdl-b004cea2d392fb28110a970e009590afb0ce457e.tar.gz
ghdl-b004cea2d392fb28110a970e009590afb0ce457e.tar.bz2
ghdl-b004cea2d392fb28110a970e009590afb0ce457e.zip
synth: improve fatal error propagation.
-rw-r--r--src/synth/synth-oper.adb3
-rw-r--r--src/synth/synth-stmts.adb4
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;