diff options
-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; |