http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59813

--- Comment #1 from Nikolay Orliuk <virkony at gmail dot com> ---
In 4.7.3 that code works, but changing it to

void foo()
{
    cout << "x" << endl; // ok
    cout << 'x' << endl; // kills tail-call elimination in gcc 4.8.2
    struct {} bar; // kills tail-call elimination in 4.7.3
    foo();
}

Removing either "bar" or 'x' results in normal infinite loop.
In 4.5.4 this works fine as is.

Reply via email to