diff options
| author | 2026-10-15 02:37:51 +0330 | |
|---|---|---|
| committer | 2026-10-15 02:40:51 +0330 | |
| commit | fd18cb8fa5117b98939db553c2f61dd83b84d7d8 (patch) | |
| tree | 73ffa71eb12442df94a1fb7c095e3eaed338787b /tests/conformance | |
| parent | destructors: hint: x: has drop and is live at spawn; the worker's copy drops ... (diff) | |
rt: memreport marks a leaked value whose drop never ran with (drop); spec 4.11, readme, memdebug_report_drop.zc
Diffstat (limited to 'tests/conformance')
| -rw-r--r-- | tests/conformance/4-statements/memdebug_report_drop.zc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/conformance/4-statements/memdebug_report_drop.zc b/tests/conformance/4-statements/memdebug_report_drop.zc new file mode 100644 index 0000000..cf33b69 --- /dev/null +++ b/tests/conformance/4-statements/memdebug_report_drop.zc @@ -0,0 +1,15 @@ +// expect: leak: line 9 1 words (drop)/leak: line 10 2 words/207/ +// spec 4.11, 6.15: rt.memreport() marks a leaked value whose drop never ran with (drop): a leaked resource, not just words +include rt; +void pn(int x) { rt.put_n(x); rt.put_c(10); } +struct res { int fd; void drop() { rt.put_s("closed "); } } +memdebug on; +fn main() { + unchecked { + res* f = rt.new(res); + int* q = rt.new(2); + pn(rt.memreport() * 100 + 7); + } + return 0; +} +// zc0: skip |
