------- Comment #1 from burnus at gcc dot gnu dot org 2007-07-31 15:10 ------- I can this reproduce on x86-64-linux (20070731, rev127091), however, only with the option "-m32"; using "-m64" I don't get a crash and valgrind shows no problems.
For "-m32 -O1 -fpredictive-commoning" I get a simple segmentation fault, but for "-m32 -O2 -fpredictive-commoning" and "-m32 -O3" I get the error: aaa.f90:3: internal compiler error: vector VEC(tree,base) index domain error, in build_classic_dist_vector_1 at tree-data-ref.c:2725 For -O3 this is a regression with regards to 4.2.x and 4.1.x; but not a real one since -fpredictive-commoning is a new option, enabled with -O3. valgrind with -m32 -O1 -fpredictive-commoning shows: ==2392== Invalid read of size 4 ==2392== at 0x6DBEB3: build_classic_dist_vector_1 (tree-data-ref.c:2714) ==2392== by 0x6E26F6: subscript_dependence_tester (tree-data-ref.c:3021) ==2392== by 0x6E3707: compute_all_dependences (tree-data-ref.c:3829) ==2392== by 0x6E453C: compute_data_dependences_for_loop (tree-data-ref.c:4141) ==2392== by 0xA5F381: tree_predictive_commoning_loop (tree-predcom.c:2487) ==2392== by 0xA608F4: tree_predictive_commoning (tree-predcom.c:2595) ==2392== by 0x7883C6: run_tree_predictive_commoning (tree-ssa-loop.c:183) ==2392== by 0x638C38: execute_one_pass (passes.c:1124) ==2392== by 0x638E1F: execute_pass_list (passes.c:1177) ==2392== by 0x638E34: execute_pass_list (passes.c:1178) ==2392== by 0x638E34: execute_pass_list (passes.c:1178) ==2392== by 0x70E58E: tree_rest_of_compilation (tree-optimize.c:405) [...] -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|fortran |middle-end Keywords| |ice-on-valid-code Summary|ICE (segfault) when |ICE with -fpredictive- |compiling with -O3 (- |commoning in |fpredictive-commoning) |build_classic_dist_vector_1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32946