From 8a6857b78708b0157e9da27d01e73e2c30325878 Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Thu, 22 May 2025 15:00:46 -0400 Subject: [PATCH] Add test to ensure recursive eval() yields error rather than segfault. --- tests/test.cmp | 5 +++-- tests/test.rem | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test.cmp b/tests/test.cmp index a6e9d05d..bb715b81 100644 --- a/tests/test.cmp +++ b/tests/test.cmp @@ -16515,6 +16515,7 @@ catch(*Illegal character*, 35) => 35 DEBUG -x DEBUG -e +../tests/test.rem(1581): eval(): Too many recursive function calls Variable hash table statistics: Entries: 100143; Buckets: 87719; Non-empty Buckets: 66301 Maxlen: 5; Minlen: 0; Avglen: 1.142; Stddev: 0.878; Avg nonempty len: 1.510 @@ -16531,8 +16532,8 @@ Translation hash table statistics: Entries: 1; Buckets: 7; Non-empty Buckets: 1 Maxlen: 1; Minlen: 0; Avglen: 0.143; Stddev: 0.350; Avg nonempty len: 1.000 Growths: 0; Shrinks: 0 - Expression nodes allocated: 300288 -Expression nodes high-water: 300081 + Expression nodes allocated: 302080 +Expression nodes high-water: 302076 Expression nodes leaked: 0 Parse level high-water: 34 diff --git a/tests/test.rem b/tests/test.rem index d0a2e95c..0efeafb5 100644 --- a/tests/test.rem +++ b/tests/test.rem @@ -1576,6 +1576,10 @@ DEBUG -x DEBUG -e +# Check that recursive evals are caught +set a "eval(a)" +set a eval(a) + # Output expression-node stats DEBUG +h