This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/30047] New: Corrupt return value in specific context
- From: "spam at david dot osborn dot name" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Dec 2006 07:28:50 -0000
- Subject: [Bug libstdc++/30047] New: Corrupt return value in specific context
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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