aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-10-02 11:47:02 +0200
committerTristan Gingold <tgingold@free.fr>2022-10-02 11:47:38 +0200
commit7d642ac4d912c4111769f124a2da97fa83828548 (patch)
tree796d5ecefaf507f3a2611b59fded8646f57e345e /src
parent7ebccfbd51085218014940f3b063b45c193f1eb5 (diff)
downloadghdl-7d642ac4d912c4111769f124a2da97fa83828548.tar.gz
ghdl-7d642ac4d912c4111769f124a2da97fa83828548.tar.bz2
ghdl-7d642ac4d912c4111769f124a2da97fa83828548.zip
synth: improve error recovery
Diffstat (limited to 'src')
-rw-r--r--src/synth/synth-vhdl_stmts.adb3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_stmts.adb b/src/synth/synth-vhdl_stmts.adb
index 246b771bc..40a694940 100644
--- a/src/synth/synth-vhdl_stmts.adb
+++ b/src/synth/synth-vhdl_stmts.adb
@@ -2327,6 +2327,7 @@ package body Synth.Vhdl_Stmts is
end if;
end if;
if Val = No_Valtyp then
+ Release_Expr_Pool (Marker);
Set_Error (Subprg_Inst);
exit;
end if;
@@ -3509,6 +3510,7 @@ package body Synth.Vhdl_Stmts is
Rep := Synth_Expression_With_Basetype (Syn_Inst, Rep_Expr);
if Rep = No_Valtyp then
Set_Error (Syn_Inst);
+ Release_Expr_Pool (Marker);
return;
end if;
Strip_Const (Rep);
@@ -3517,6 +3519,7 @@ package body Synth.Vhdl_Stmts is
Sev := Synth_Expression (Syn_Inst, Sev_Expr);
if Sev = No_Valtyp then
Set_Error (Syn_Inst);
+ Release_Expr_Pool (Marker);
return;
end if;
Strip_Const (Sev);