https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68692
Bug ID: 68692 Summary: [graphite] ice: Segmentation fault Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: Joost.VandeVondele at mat dot ethz.ch Target Milestone: --- > cat bug.f90 MODULE spme INTEGER, PARAMETER :: dp=8 PRIVATE PUBLIC :: get_patch CONTAINS SUBROUTINE get_patch ( part, box, green, npts, p, rhos, is_core, is_shell,& unit_charge, charges, coeff, n ) INTEGER, POINTER :: box REAL(KIND=dp), & DIMENSION(-(n-1):n-1, 0:n-1), & INTENT(IN) :: coeff INTEGER, DIMENSION(3), INTENT(IN) :: npts REAL(KIND=dp), DIMENSION(:, :, :), & INTENT(OUT) :: rhos REAL(KIND=dp) :: q REAL(KIND=dp), DIMENSION(3) :: delta, r CALL get_delta ( box, r, npts, delta, nbox ) CALL spme_get_patch ( rhos, nbox, delta, q, coeff ) END SUBROUTINE get_patch SUBROUTINE spme_get_patch ( rhos, n, delta, q, coeff ) REAL(KIND=dp), DIMENSION(:, :, :), & INTENT(OUT) :: rhos REAL(KIND=dp), DIMENSION(3), INTENT(IN) :: delta REAL(KIND=dp), INTENT(IN) :: q REAL(KIND=dp), & DIMENSION(-(n-1):n-1, 0:n-1), & INTENT(IN) :: coeff INTEGER, PARAMETER :: nmax = 12 REAL(KIND=dp), DIMENSION(3, -nmax:nmax) :: w_assign REAL(KIND=dp), DIMENSION(3, 0:nmax-1) :: deltal REAL(KIND=dp), DIMENSION(3, 1:nmax) :: f_assign DO l = 1, n-1 deltal ( 3, l ) = deltal ( 3, l-1 ) * delta ( 3 ) END DO DO j = -(n-1), n-1, 2 DO l = 0, n-1 w_assign ( 1, j ) = w_assign ( 1, j ) + & coeff ( j, l ) * deltal ( 1, l ) END DO f_assign (3, i ) = w_assign ( 3, j ) DO i2 = 1, n DO i1 = 1, n rhos ( i1, i2, i3 ) = r2 * f_assign ( 1, i1 ) END DO END DO END DO END SUBROUTINE spme_get_patch SUBROUTINE get_delta ( box, r, npts, delta, n ) INTEGER, POINTER :: box REAL(KIND=dp), DIMENSION(3), INTENT(IN) :: r INTEGER, DIMENSION(3), INTENT(IN) :: npts REAL(KIND=dp), DIMENSION(3), INTENT(OUT) :: delta INTEGER, DIMENSION(3) :: center REAL(KIND=dp), DIMENSION(3) :: ca, grid_i, s CALL real_to_scaled(s,r,box) s = s - REAL ( NINT ( s ),KIND=dp) IF ( MOD ( n, 2 ) == 0 ) THEN ca ( : ) = REAL ( center ( : ) ) END IF delta ( : ) = grid_i ( : ) - ca ( : ) END SUBROUTINE get_delta END MODULE spme > gfortran -c -O3 -floop-nest-optimize bug.f90 bug.f90:6:0: SUBROUTINE get_patch ( part, box, green, npts, p, rhos, is_core, is_shell,& internal compiler error: Segmentation fault 0xb676cf crash_signal ../../gcc/gcc/toplev.c:334 0xbba647 ssa_default_def(function*, tree_node*) ../../gcc/gcc/tree-dfa.c:305 0xbbd088 get_or_create_ssa_default_def(function*, tree_node*) ../../gcc/gcc/tree-dfa.c:357 0xbf3e83 get_reaching_def ../../gcc/gcc/tree-into-ssa.c:1168 0xbf3e83 get_reaching_def ../../gcc/gcc/tree-into-ssa.c:1155 0xbf5dbe maybe_replace_use ../../gcc/gcc/tree-into-ssa.c:1753 0xbf5dbe rewrite_update_stmt ../../gcc/gcc/tree-into-ssa.c:1948 0xbf5dbe rewrite_update_dom_walker::before_dom_children(basic_block_def*) ../../gcc/gcc/tree-into-ssa.c:2128 0xbf5dbe rewrite_update_dom_walker::before_dom_children(basic_block_def*) ../../gcc/gcc/tree-into-ssa.c:2068 0x125a71a dom_walker::walk(basic_block_def*) ../../gcc/gcc/domwalk.c:176 0xbf28b5 rewrite_blocks ../../gcc/gcc/tree-into-ssa.c:2190 0xbf9a68 update_ssa(unsigned int) ../../gcc/gcc/tree-into-ssa.c:3351 0x128530a graphite_regenerate_ast_isl(scop*) ../../gcc/gcc/graphite-isl-ast-to-gimple.c:3271 0x127cea3 graphite_transform_loops() ../../gcc/gcc/graphite.c:336 0x127d370 graphite_transforms ../../gcc/gcc/graphite.c:363 0x127d370 execute ../../gcc/gcc/graphite.c:440 Please submit a full bug report, > gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/data/vjoost/gnu/gcc_trunk/install/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/data/vjoost/gnu/gcc_trunk/install --enable-languages=c,c++,fortran --disable-multilib --enable-plugins --enable-lto --disable-bootstrap Thread model: posix gcc version 6.0.0 20151204 (experimental) [trunk revision 231243] (GCC)