Between revisions 163595 (working) and 163628 (failing) compiling gfortran.dg/transfer_simplify_2.f90 with -O2 -m64 gives an ICE
[karma] f90/bug% gfc -O2 -m64 /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/transfer_simplify_2.f90: In function 'main': /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/transfer_simplify_2.f90:21:0: error: insn does not satisfy its constraints: (insn 627 117 628 6 (set (reg:DI 32 f0) (mem/u/c:DI (lo_sum:DI (reg:DI 2 r2 [282]) (const:DI (unspec:DI [ (symbol_ref:DI ("l2.1497") [flags 0xe02] <var_decl 0x417a9c00 l2>) ] 50))) [0 MEM[(c_char * {ref-all})&l2]+0 S8 A32])) /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/transfer_simplify_2.f90:59 9 {movdi_low} (expr_list:REG_DEAD (reg:DI 2 r2 [282]) (nil))) /opt/gcc/_gcc_clean/gcc/testsuite/gfortran.dg/transfer_simplify_2.f90:21:0: internal compiler error: in copyprop_hardreg_forward_1, at regcprop.c:768 Reduced test case (after commenting the line 'call logical4_to_real8' in the original code, it compiles and run) implicit none call logical4_to_real8 contains subroutine logical4_to_real8 logical(4), parameter :: l1(2) = (/.false., .true./) logical(4) :: l2(2) = l1 real(8), parameter :: r1 = transfer (l1, 1_8) real(8) :: r2 r2 = transfer (l2, 1_8); if (r1 .ne. r2) call abort () end subroutine logical4_to_real8 end and backtrace MAIN__ logical4_to_real8 main Analyzing compilation unit Performing interprocedural optimizations <*free_lang_data> <visibility> <early_local_cleanups> <emutls> <whole-program> <ipa-profile> <cp> <inline> <pure-const> <static-var>Assembling functions: main transfer_simplify_2_red.f90: In function 'main': transfer_simplify_2_red.f90:2:0: error: insn does not satisfy its constraints: (insn 50 15 51 2 (set (reg:DI 32 f0) (mem/u/c:DI (lo_sum:DI (reg/f:DI 2 r2 [127]) (symbol_ref:DI ("l2.1161") [flags 0xe02] <var_decl 0x41778ea0 l2>)) [0 MEM[(c_char * {ref-all})&l2]+0 S8 A32])) transfer_simplify_2_red.f90:11 9 {movdi_low} (expr_list:REG_DEAD (reg/f:DI 2 r2 [127]) (nil))) Breakpoint 1, fancy_abort (file=0x8fb450 "../../gcc-4.6-work/gcc/regcprop.c", line=768, function=0xad2fa8 "copyprop_hardreg_forward_1") at ../../gcc-4.6-work/gcc/diagnostic.c:879 879 internal_error ("in %s, at %s:%d", function, trim_filename (file), line); (gdb) bt #0 fancy_abort (file=0x8fb450 "../../gcc-4.6-work/gcc/regcprop.c", line=768, function=0xad2fa8 "copyprop_hardreg_forward_1") at ../../gcc-4.6-work/gcc/diagnostic.c:879 #1 0x00580c68 in _fatal_insn (msgid=<value temporarily unavailable, due to optimizations>, insn=<value temporarily unavailable, due to optimizations>, file=<value temporarily unavailable, due to optimizations>, line=<value temporarily unavailable, due to optimizations>, function=<value temporarily unavailable, due to optimizations>) at ../../gcc-4.6-work/gcc/rtl-error.c:109 #2 0x00580ca8 in _fatal_insn_not_found (insn=0xa082853c, file=0x300 <Address 0x300 out of bounds>, line=5770344, function=0xa082b45c " ‚´Ÿ") at ../../gcc-4.6-work/gcc/rtl-error.c:119 #3 0x00557fe8 in copyprop_hardreg_forward () at ../../gcc-4.6-work/gcc/regcprop.c:768 #4 0x0052fc0c in execute_one_pass (pass=0xb8f2a0) at ../../gcc-4.6-work/gcc/passes.c:1569 #5 0x0052ff44 in execute_pass_list (pass=0xb8f2a0) at ../../gcc-4.6-work/gcc/passes.c:1624 #6 execute_pass_list (pass=0xb897e4) at ../../gcc-4.6-work/gcc/passes.c:1626 #7 execute_pass_list (pass=0xb89818) at ../../gcc-4.6-work/gcc/passes.c:1626 #8 0x0065cedc in tree_rest_of_compilation (fndecl=0x41779600) at ../../gcc-4.6-work/gcc/tree-optimize.c:452 #9 0x0082020c in cgraph_expand_function (node=0x41707360) at ../../gcc-4.6-work/gcc/cgraphunit.c:1469 #10 0x00822ed4 in cgraph_optimize () at ../../gcc-4.6-work/gcc/cgraphunit.c:1548 #11 0x00823440 in cgraph_finalize_compilation_unit () at ../../gcc-4.6-work/gcc/cgraphunit.c:1012 #12 0x004baca4 in write_global_declarations () at ../../gcc-4.6-work/gcc/langhooks.c:310 #13 0x005ed9e0 in toplev_main (argc=4, argv=0x38018f13) at ../../gcc-4.6-work/gcc/toplev.c:984 #14 0x00001990 in start () If the line 'if (r1 .ne. r2) call abort ()' is commented the code compiles. -- Summary: [4.6 Regression] ICE on powerpc-apple-darwin9 for gfortran.dg/transfer_simplify_2.f90 with -O2 -m64 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dominiq at lps dot ens dot fr GCC build triplet: powerpc-apple-darwin9 GCC target triplet: powerpc-apple-darwin9 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45585