There is a related bug still in this file in ldobj() I think: if(nhunk < sizeof(Prog)) gethunk(); p = (Prog*)hunk; nhunk -= sizeof(Prog); hunk += sizeof(Prog);
it should be while(chunk < sizeof(Prog)) (or even better again, a simple call to malloc(sizeof(Prog)) On Dec 9, 2014, at 4:21 PM, yoann padioleau <aryx.pada...@gmail.com> wrote: > in 5l/obj.c#zaddr() > there is: > case D_FCONST: > while(nhunk < sizeof(Ieee)) > gethunk(); > a->ieee = (Ieee*)hunk; > nhunk -= NSNAME; > hunk += NSNAME; > > I think it’s a copy paste bug, it should > be sizeof(Ieee) instead of those NSNAME > (or even better the whole code could be factorized > in a call to a->ieee = malloc(sizeof(Ieee)); >