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 <[email protected]> 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));
>