summaryrefslogtreecommitdiffstats
path: root/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING4
1 files changed, 3 insertions, 1 deletions
diff --git a/HACKING b/HACKING
index 17c8deb7..20e4dc4f 100644
--- a/HACKING
+++ b/HACKING
@@ -784,7 +784,9 @@ There are other GC issues that are hard to catch, like spurious retention.
This is when the code generated by the C compiler hangs on to an object
which, in the source code semantics, should be garbage. It can happen,
for example, when a variable has gone out of scope, but the stack location
-where that variable was last stored has not been overwritten.
+where that variable was last stored has not been overwritten. Register-save
+areas in the stack frame can similarly contain stale data, because when a
+register value is restored from the save area, the copy remains there.
Spurious retention can also happen if a bit pattern is generated which looks
ike a reference to an object, by chance. We share this problem with