gfortran-20070412 segfaults on the code below, gfortran-20070316 doesn't. $> cat segfault.f90 MODULE class_dummy_atom_types TYPE :: dummy_atom_list TYPE(dummy_atom), DIMENSION(:), POINTER :: table INTEGER :: nused END TYPE
TYPE :: dummy_atom TYPE(dummy_atom_private), POINTER :: p END TYPE TYPE :: dummy_atom_private TYPE(dummy_atom_list) :: neighbours END TYPE END MODULE MODULE class_dummy_atom_list USE class_dummy_atom_types, ONLY: dummy_atom_list INTERFACE SUBROUTINE dummy_atom_list_init_copy(this, other) USE class_dummy_atom_types, ONLY: dummy_atom_list TYPE(dummy_atom_list), INTENT(out) :: this TYPE(dummy_atom_list), INTENT(in) :: other END SUBROUTINE END INTERFACE INTERFACE SUBROUTINE dummy_atom_list_merge(this, other) USE class_dummy_atom_types, ONLY: dummy_atom_list TYPE(dummy_atom_list), INTENT(inout) :: this TYPE(dummy_atom_list), INTENT(in) :: other END SUBROUTINE END INTERFACE END MODULE SUBROUTINE dummy_atom_list_init_copy(this, other) USE class_dummy_atom_list, ONLY: dummy_atom_list, dummy_atom_list_merge TYPE(dummy_atom_list), INTENT(out) :: this TYPE(dummy_atom_list), INTENT(in) :: other this%table(1:this%nused) = other%table(1:other%nused) END SUBROUTINE $> gfortran-svn -g -Wall segfault.f90 segfault.f90: In function 'dummy_atom_list_init_copy': segfault.f90:42: internal compiler error: Segmentation fault $> gfortran-svn -v gcc version 4.3.0 20070412 (experimental) Backtrace: run -g -Wall segfault.f90 Starting program: /h/franke/packages/i686-pc-linux-gnu/gcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 -g -Wall segfault.f90 dummy_atom_list_init_copy Program received signal SIGSEGV, Segmentation fault. size_binop (code=EXACT_DIV_EXPR, arg0=0x0, arg1=0xb7c8c4b4) at ../../../svn/gcc/gcc/fold-const.c:1963 1963 tree type = TREE_TYPE (arg0); (gdb) bt #0 size_binop (code=EXACT_DIV_EXPR, arg0=0x0, arg1=0xb7c8c4b4) at ../../../svn/gcc/gcc/fold-const.c:1963 #1 0x08230389 in gimplify_compound_lval (expr_p=0xb7c912ec, pre_p=0xbff57a00, post_p=0xbff579fc, fallback=fb_lvalue) at ../../../svn/gcc/gcc/gimplify.c:1788 #2 0x0822c6da in gimplify_expr (expr_p=0xb7c912ec, pre_p=0xbff57a00, post_p=0xbff579fc, gimple_test_f=0x8337ec0 <is_gimple_lvalue>, fallback=fb_lvalue) at ../../../svn/gcc/gcc/gimplify.c:5503 #3 0x0823e507 in gimplify_modify_expr (expr_p=0xb7ce7a28, pre_p=0xbff57a00, post_p=0xbff579fc, want_value=0 '\0') at ../../../svn/gcc/gcc/gimplify.c:3597 #4 0x0822bfcb in gimplify_expr (expr_p=0xb7ce7a28, pre_p=0xbff57a00, post_p=0xbff579fc, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:5543 #5 0x0823239f in gimplify_stmt (stmt_p=0xb7ce7a28) at ../../../svn/gcc/gcc/gimplify.c:4334 #6 0x0822bd55 in gimplify_expr (expr_p=0xbff57b30, pre_p=0xbff57ae0, post_p=0xbff57adc, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:3794 #7 0x0823239f in gimplify_stmt (stmt_p=0xbff57b30) at ../../../svn/gcc/gcc/gimplify.c:4334 #8 0x08234d0f in gimplify_and_add (t=0xb7cfb914, list_p=0xbff57c00) at ../../../svn/gcc/gcc/gimplify.c:340 #9 0x082355b0 in gimplify_loop_expr (expr_p=0xb7ce7a40, pre_p=0xbff57c00) at ../../../svn/gcc/gcc/gimplify.c:1305 #10 0x0822c417 in gimplify_expr (expr_p=0xb7ce7a40, pre_p=0xbff57c00, post_p=0xbff57bfc, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:5658 #11 0x0823239f in gimplify_stmt (stmt_p=0xb7ce7a40) at ../../../svn/gcc/gcc/gimplify.c:4334 #12 0x0822bd55 in gimplify_expr (expr_p=0xb7ce02f0, pre_p=0xbff57ce0, post_p=0xbff57cdc, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:3794 #13 0x0823239f in gimplify_stmt (stmt_p=0xb7ce02f0) at ../../../svn/gcc/gcc/gimplify.c:4334 #14 0x08233bd7 in gimplify_to_stmt_list (stmt_p=0xb7ce02f0) at ../../../svn/gcc/gcc/gimplify.c:4342 #15 0x082341ad in gimplify_bind_expr (expr_p=0xb7ce7a58, pre_p=0xbff57e30) at ../../../svn/gcc/gcc/gimplify.c:1095 #16 0x0822c07c in gimplify_expr (expr_p=0xb7ce7a58, pre_p=0xbff57e30, post_p=0xbff57e2c, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:5654 #17 0x0823239f in gimplify_stmt (stmt_p=0xb7ce7a58) at ../../../svn/gcc/gcc/gimplify.c:4334 #18 0x0822bd55 in gimplify_expr (expr_p=0xb7ce0318, pre_p=0xbff57f10, post_p=0xbff57f0c, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:3794 #19 0x0823239f in gimplify_stmt (stmt_p=0xb7ce0318) at ../../../svn/gcc/gcc/gimplify.c:4334 #20 0x08233bd7 in gimplify_to_stmt_list (stmt_p=0xb7ce0318) at ../../../svn/gcc/gcc/gimplify.c:4342 #21 0x082341ad in gimplify_bind_expr (expr_p=0xb7cfd470, pre_p=0xbff58060) at ../../../svn/gcc/gcc/gimplify.c:1095 #22 0x0822c07c in gimplify_expr (expr_p=0xb7cfd470, pre_p=0xbff58060, post_p=0xbff5805c, gimple_test_f=0x8338360 <is_gimple_stmt>, fallback=fb_none) at ../../../svn/gcc/gcc/gimplify.c:5654 #23 0x0823239f in gimplify_stmt (stmt_p=0xb7cfd470) at ../../../svn/gcc/gcc/gimplify.c:4334 #24 0x08232d41 in gimplify_body (body_p=0xb7cfd470, fndecl=0xb7cfd414, do_parms=1 '\001') at ../../../svn/gcc/gcc/gimplify.c:6347 #25 0x0823332b in gimplify_function_tree (fndecl=0xb7cfd414) at ../../../svn/gcc/gcc/gimplify.c:6425 #26 0x080c169e in gfc_gimplify_function (fndecl=0xb7c8c4b4) at ../../../svn/gcc/gcc/fortran/trans-decl.c:1527 #27 0x080c825f in gfc_generate_function_code (ns=0x88351e8) at ../../../svn/gcc/gcc/fortran/trans-decl.c:3309 #28 0x0808cb7f in gfc_parse_file () at ../../../svn/gcc/gcc/fortran/parse.c:3264 #29 0x080ac7bd in gfc_be_parse_file (set_yydebug=0) at ../../../svn/gcc/gcc/fortran/f95-lang.c:305 #30 0x082f66e2 in toplev_main (argc=4, argv=0xbff58324) at ../../../svn/gcc/gcc/toplev.c:1050 #31 0x080ee6af in main (argc=Cannot access memory at address 0x0 -- Summary: [regression] f951: segfault in fold-const.c:1963 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: dfranke at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31550