低レイヤを知りたい人のためのcコンパイラ作成入門でつまった

ベクタとマップを実装するとこまで来たんだが、(ステップ6の等号非等号は飛ばした)mallocがうまく行かなくて、テストが積んだっぽい。

./9cc -test
9cc: malloc.c:2401: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || *1 == 0)' failed.
Makefile:10: recipe for target 'test' failed

というのがでテストが通らない。

解決策がわからんので一旦放置になるのかな……。なかなか面白かっただけに残念、9ccのコードを追って行くか……。あとサンプルの関数名が明らかに間違ってるのはとりあえず書き上げてから間違いを治そうという気持ちで書いているからなのだろうか(mapのテストなのにtest_vectorという関数名はおかしいやろ……。)

 

*1:unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1