The following code prints an incorrect return value from F. #include <iostream> #include <vector>
int F() { std::vector<char> buffer; // this can be any container std::cout << std::endl; return 12345; std::cout << std::endl; } int main() { std::cout << F() << std::endl; // prints something other than 12345 } If any of the lines in F are rearranged, the bug goes away. I did a fresh rebuild of GCC 4.1.1 under MinGW and bug remained. Before the rebuild, the return value was somewhat random, as if it were accessing invalid memory. Since the rebuild, the return value has been a steady 0. Compiled with: $ g++ -oprog prog.cpp && prog -- Summary: Corrupt return value in specific context Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: spam at david dot osborn dot name GCC build triplet: i686-pc-mingw32 GCC host triplet: i686-pc-mingw32 GCC target triplet: i686-pc-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30047