mirror of
https://github.com/NaC-L/Mergen.git
synced 2026-05-12 09:40:34 +00:00
33f24ed0fc
The InstructionKey::InstructionKeyInfo had getEmptyKey() and getTombstoneKey() both returning InstructionKey(nullptr, nullptr). LLVM DenseMap requires these to be distinct sentinel values. This violated the DenseMap contract, causing bucket corruption during copy/iteration (the old FIXME about 'last item corrupted'). Fix: use reinterpret_cast sentinel pointers -1 and -2, matching LLVM convention. Also cleaned up the non-const copy constructor (removed dead local copy and stale FIXME comment). Also adds: - switch_sparse.asm test (non-consecutive case values: 10, 50, 200, 1000) - calc_cout.cpp test (skipped - documents inline policy limitation with STL) - C++ compilation support in build_samples.cmd - Skip mechanism for manifest entries (skip: true + skip_reason) - Fix test.py update-golden to not run determinism check before updating 68 pattern checks, 40 golden hashes, 108 handler microtests — all green.