The attached C++ program triggers an assertion violation when compiled with -O2 (it should not). The assertion is not triggered when adding -fno-strict-aliasing, or when removing -O2. It is also working when slight changes to the program are made (see comments in the source). It is the smallest version of the program which allowed me to reproduce the bug, but I did not try to look into the <vector> header.
It might be an aliasing bug in <vector>, I don't know. Note that g++ 3.4 works fine. -- Summary: Aliasing optimisation bug Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: critical Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sylvain dot pion at sophia dot inria dot fr CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19786