libfirm / cparser

C99 parser and frontend for libfirm
http://pp.ipd.kit.edu/firm
GNU General Public License v2.0
336 stars 38 forks source link

cparser aborts on mildly complex float operations #28

Open GabrielRavier opened 4 years ago

GabrielRavier commented 4 years ago
void foo(void);

long double a = 5;
long double b = 1;
long double c = 11;
long double d = 17;
long double e, f, g, h, i, j;

int main()
{
    h = d;
    e = a + b;
    j = g + c;
    h += f;
    f += b;
    g = j + g;
    i = c + d;
    if (e + h)
        foo();
}

This gives this message :

ir/be/ia32/x86_x87.c:877: libFirm panic in x86_sim_x87_store: TODO: out of stack spill case
Aborted (core dumped)

It's marked as a TODO but it's a pretty critical bug so I'll add it to here.