So I just started trying out gcc 4.1 - with a program which compiles and runs fine on gcc 3.3.
Attached is a reduced testcase which shows runtime segfault due to stack overflow if compiled with 4.1 but does not with 3.3. Trivial work around is to move the specific declaration above the template definition. Now I see potential for this to be 'the way the standard wants it to be', but given I don't have a copy of the standard I am unsure. Should I report this as a bug or is it a standards compliance improvement? Regards, Gareth Pearce
class sstring_t { }; template <typename T> int recurse(T blah) { sstring_t x; return recurse(x); } int recurse(const sstring_t& blah) { } int main() { return recurse(1); }