The following testcase ICEs on x64_64-linux with -m32 -O: $ cat u.f90 subroutine scaleg(a, w) real a(1), w(1) a(1) = 2.0**int(w(1)) end $ gfortran -m32 -c u.f90 -O1 u.f90: In function scaleg: u.f90:3: internal compiler error: in copy_insn_1, at emit-rtl.c:4925
The regression happened somewhere between revisions 127363 and 127489. It doesn't feel like it is a front-end issue, but I haven't got a C testcase for it :) Backtrace: #0 fancy_abort (file=0xb2ec10 "../../../trunk3/gcc/emit-rtl.c", line=4925, function=0xb2f5cb "copy_insn_1") at ../../../trunk3/gcc/diagnostic.c:654 #1 0x0000000000545dec in copy_insn_1 (orig=0x2ab9aad71c30) at ../../../trunk3/gcc/emit-rtl.c:4925 #2 0x0000000000545e6e in copy_insn_1 (orig=0x2ab9aae68a20) at ../../../trunk3/gcc/emit-rtl.c:4897 #3 0x0000000000545e6e in copy_insn_1 (orig=0x2ab9aae68c80) at ../../../trunk3/gcc/emit-rtl.c:4897 #4 0x000000000067960f in eliminate_regs_in_insn (insn=0x2ab9aad71dc0, replace=0) at ../../../trunk3/gcc/reload1.c:3363 #5 0x00000000006813ed in reload (first=0x2ab9aad767c0, global=1) at ../../../trunk3/gcc/reload1.c:1565 #6 0x0000000000a1f136 in rest_of_handle_global_alloc () at ../../../trunk3/gcc/global.c:683 #7 0x00000000006391d9 in execute_one_pass (pass=0xde3b40) at ../../../trunk3/gcc/passes.c:1119 #8 0x00000000006393c0 in execute_pass_list (pass=0xde3b40) at ../../../trunk3/gcc/passes.c:1172 #9 0x00000000006393d5 in execute_pass_list (pass=0xddf3c0) at ../../../trunk3/gcc/passes.c:1173 #10 0x000000000070f99a in tree_rest_of_compilation (fndecl=0x2ab9aae61300) at ../../../trunk3/gcc/tree-optimize.c:405 #11 0x0000000000869940 in cgraph_expand_function (node=0x2ab9aae61500) at ../../../trunk3/gcc/cgraphunit.c:1077 #12 0x000000000086be2a in cgraph_optimize () at ../../../trunk3/gcc/cgraphunit.c:1146 -- Summary: [4.3 regression] ICE in copy_insn_1, at emit-rtl.c:4925 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33074