Skip to content

tutorial07, ubuntu下,c->top溢出,导致程序死循环 #96

Open
@Thomas094

Description

@Thomas094

语句:
c->top -= 32 - sprintf(lept_context_push(c, 32), "%.17g", v->u.n);

执行前c->top=0;
执行后c->top=18xxxxxxxxx(一个很大的值);该值为2^64左右,判断其是以0 - 1 所得,c->top提前压入栈,而非执行lept_context_push后的值。
改为冗长的写法后正常工作,sprintf返回值为1。gcc版本为4.8.4,猜测与编译器有很大关系

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions