With 4.4.0 20080523 [trunk revision 135791] the following fails on x86-64. It was working with 2008-05-20-r135601.
$ gfortran -fprofile-generate -march=opteron -ffast-math -funroll-loops -ftree-vectorize -ftree-loop-linear -msse3 -O3 mdbx.f90 $ ./a.out $ gfortran -fprofile-use -march=opteron -ffast-math -funroll-loops -ftree-vectorize -ftree-loop-linear -msse3 -O3 mdbx.f90 Valgrind shows for the latter: ==27696== Invalid read of size 8 ==27696== at 0x4D0913: ggc_set_mark (ggc-page.c:584) ==27696== by 0x485B07: gt_ggc_mx_lang_tree_node (gt-fortran-f95-lang.h:49) ==27696== by 0x63D14C: gt_ggc_mx_rtx_def (gtype-desc.c:1277) ==27696== by 0x4868DE: gt_ggc_mx_lang_tree_node (gt-fortran-f95-lang.h:173) ==27696== by 0x4866AA: gt_ggc_mx_lang_tree_node (gt-fortran-f95-lang.h:304) ==27696== by 0x636794: gt_ggc_mx_cgraph_node (gtype-desc.c:162) ==27696== by 0x636A45: gt_ggc_m_P11cgraph_node4htab (gtype-desc.c:1870) ==27696== by 0x6157AE: ggc_mark_roots (ggc-common.c:107) ==27696== by 0x4D1408: ggc_collect (ggc-page.c:1946) ==27696== by 0x67DA14: execute_todo (passes.c:1050) ==27696== by 0x67DCA3: execute_one_pass (passes.c:1306) ==27696== by 0x67DE84: execute_pass_list (passes.c:1334) ==27696== Address 0x8 is not stack'd, malloc'd or (recently) free'd mdbx.f90: In function "mstep": mdbx.f90:822: internal compiler error: segmentation fault If no -profile-generate'd data is available, there is no crash. The program is part of the Polyhedron testsuite, which is available at: http://www.polyhedron.co.uk/MFL6VW74649 -- Summary: [4.4 Regression] ICE with -fprofile-use (Invalid read of size 8) Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36315