GC_mallocまたはnewしたポインタは加工して保持しない

GCGC_mallocしたポインタが回収されてしまう原因は、ポインタをBignumにして返していたこと。
Bignumにした段階でタグが付与され、(ポインタとして見たときの)アドレスが変化してしまう。保守的GCの前提はポインタが加工されない事だから、このようにして加工してしまったポインタは"存在しないもの"として扱われないといけない。
しかしそこを修正しても未だに落ちるときは落ちる。Valgrindで実行すると落ちないので、非常に微妙なタイミングでGCが行われたときだけ落ちるようだ。