From 4e22f464387725a5a282f3d72e11cfb694a31a5a Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 05:33:33 +0000 Subject: feat(memory): add checked REALLOC with failure preservation Co-Authored-By: Claude Fable 5.1 --- tests/i/memory-uncaught/case.json | 1 + tests/i/memory-uncaught/expected.txt | 2 ++ tests/i/memory-uncaught/notes.md | 5 +++++ tests/i/memory-uncaught/program.cps | 5 +++++ 4 files changed, 13 insertions(+) create mode 100644 tests/i/memory-uncaught/case.json create mode 100644 tests/i/memory-uncaught/expected.txt create mode 100644 tests/i/memory-uncaught/notes.md create mode 100644 tests/i/memory-uncaught/program.cps (limited to 'tests/i/memory-uncaught') diff --git a/tests/i/memory-uncaught/case.json b/tests/i/memory-uncaught/case.json new file mode 100644 index 0000000..2c4afe3 --- /dev/null +++ b/tests/i/memory-uncaught/case.json @@ -0,0 +1 @@ +{"exit_code": 1} diff --git a/tests/i/memory-uncaught/expected.txt b/tests/i/memory-uncaught/expected.txt new file mode 100644 index 0000000..448a57b --- /dev/null +++ b/tests/i/memory-uncaught/expected.txt @@ -0,0 +1,2 @@ +[Fatal] line 5: Invalid memory address (not an active allocation) +Unhandled exception. Program terminated. diff --git a/tests/i/memory-uncaught/notes.md b/tests/i/memory-uncaught/notes.md new file mode 100644 index 0000000..3d7f2df --- /dev/null +++ b/tests/i/memory-uncaught/notes.md @@ -0,0 +1,5 @@ +# Trace notes + +Human review: pending. + +The second free prints its line and reason, then throws. The generated main handler prints the termination message and returns 1. This is an extension, tested through native and configured runner execution. diff --git a/tests/i/memory-uncaught/program.cps b/tests/i/memory-uncaught/program.cps new file mode 100644 index 0000000..85b96a8 --- /dev/null +++ b/tests/i/memory-uncaught/program.cps @@ -0,0 +1,5 @@ +TYPE Raw = C_TYPE("void*") +DECLARE P : Raw +P <- MALLOC(8) +FREE(P) +FREE(P) -- cgit v1.3.1-4-g156e