http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59813
Bug ID: 59813 Summary: tail-call elimintation didn't fired with left-shift of char to cout Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: virkony at gmail dot com #include <iostream> using namespace std; void foo() { cout << "x" << endl; // ok cout << 'x' << endl; // kills tail-call elimination in gcc 4.8.2 foo(); } int main() { foo(); return 0; } // core-dups by long stack while in 4.7.3 works as expected (infinite loop)