aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-13 04:52:08 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-13 04:52:08 +0200
commita83288e572ef07e1bfb8c478c8798d87726b89b8 (patch)
tree104a7974c286b7cfc18bb0de897eca5796464641 /src
parentc54bac854a8d49f1b84b10c500ff3b181a1c1c7b (diff)
downloadghdl-a83288e572ef07e1bfb8c478c8798d87726b89b8.tar.gz
ghdl-a83288e572ef07e1bfb8c478c8798d87726b89b8.tar.bz2
ghdl-a83288e572ef07e1bfb8c478c8798d87726b89b8.zip
evaluation: free evaluated operand for tf_array_not.
Diffstat (limited to 'src')
-rw-r--r--src/vhdl/evaluation.adb6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/vhdl/evaluation.adb b/src/vhdl/evaluation.adb
index cdac9e5a5..7a664ca5a 100644
--- a/src/vhdl/evaluation.adb
+++ b/src/vhdl/evaluation.adb
@@ -531,13 +531,14 @@ package body Evaluation is
when Iir_Predefined_TF_Array_Not =>
declare
+ Lit_Val : Iir;
O_List : Iir_List;
R_List : Iir_List;
El : Iir;
Lit : Iir;
begin
- O_List := Get_Simple_Aggregate_List
- (Eval_String_Literal (Operand));
+ Lit_Val := Eval_String_Literal (Operand);
+ O_List := Get_Simple_Aggregate_List (Lit_Val);
R_List := Create_Iir_List;
for I in Natural loop
@@ -553,6 +554,7 @@ package body Evaluation is
end case;
Append_Element (R_List, Lit);
end loop;
+ Free_Eval_String_Literal (Lit_Val, Operand);
return Build_Simple_Aggregate
(R_List, Orig, Get_Type (Operand));
end;