This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/30047] New: Corrupt return value in specific context


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]