In an inlined method, we cast a double argument into an INT64& : with gcc4.2.1 (not with other versions or compilers), this gives a completely false result that leads to a crash. To avoid this, we had to create an INT64 on the stach and to memcpy the double into it, which is much less optimized... Of course, we compile with full (O3) optimization. With O0, this works.
-- Summary: Bad optimization in an inlined method Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dvt at isoft dot fr GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34295