FAILURE MAP
← Case archive

FA-90598 / Garbage collector invariants / Member archive

Stack maps: reference bitmask read most-significant bit first · case 03

Integer slots are relocated as pointers while real reference slots keep stale addresses.

Member previewVariant 3 · 3 implementations · 6 checks per implementation

Case contract

Relocate frame slots after a moving collection. Each frame has a safepoint pc and a slot list; maps[pc] gives a reference bitmask (bit i set means slot i holds a reference; bit 0 is slot 0) and derived pointers [derived_slot, base_slot], which hold base + offset and are not in the mask. moves maps old object addresses to new ones (unmoved objects are absent or map to themselves). Reference slots are relocated, derived slots become new base + (old derived - old base), and every other slot is left untouched. A pc without a map returns ["no-stackmap", pc].

Why this case matters

Precise collectors rely on stack maps; misreading them corrupts registers or keeps stale pointers.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: references, integers and derived pointers[[1000, 10, 2000, 5064, 1000, 2392]][[5048, 10, 2400, 5064, 1000, 2392]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗