------- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-09-17 08:39 
-------
I can reproduce that on x86_64-linux with trunk rev. 128442. Severity set to
critical, as this is LAPACK.

Program received signal SIGSEGV, Segmentation fault.
vect_get_vec_defs_for_stmt_copy (dt=0x7fff713d44c0, 
    vec_oprnds0=0x7fff713d44b8, vec_oprnds1=0x7fff713d44b0)
    at ../../../trunk/gcc/tree.h:210
210     DEF_VEC_P(tree);
(gdb) bt
#0  vect_get_vec_defs_for_stmt_copy (dt=0x7fff713d44c0, 
    vec_oprnds0=0x7fff713d44b8, vec_oprnds1=0x7fff713d44b0)
    at ../../../trunk/gcc/tree.h:210
#1  0x0000000000aacca6 in vectorizable_operation (stmt=0x2ac339ca5600, 
    bsi=0x7fff713d4660, vec_stmt=0x7fff713d4528, slp_node=0x0)
    at ../../../trunk/gcc/tree-vect-transform.c:3987
#2  0x0000000000ab95d4 in vect_transform_stmt (stmt=0x2ac339ca5600, 
    bsi=0x7fff713d4660, strided_store=0x7fff713d46cf "", slp_node=0x0)
    at ../../../trunk/gcc/tree-vect-transform.c:6095
#3  0x0000000000aba733 in vect_transform_loop (loop_vinfo=0x1091460)
    at ../../../trunk/gcc/tree-vect-transform.c:7334
#4  0x000000000080c28e in vectorize_loops ()
    at ../../../trunk/gcc/tree-vectorizer.c:2507
#5  0x000000000064e261 in execute_one_pass (pass=0xe22180)
    at ../../../trunk/gcc/passes.c:1115
#6  0x000000000064e440 in execute_pass_list (pass=0xe22180)
    at ../../../trunk/gcc/passes.c:1168
#7  0x000000000064e455 in execute_pass_list (pass=0xe21fa0)
    at ../../../trunk/gcc/passes.c:1169
#8  0x000000000064e455 in execute_pass_list (pass=0xe213a0)
    at ../../../trunk/gcc/passes.c:1169
#9  0x00000000007286e8 in tree_rest_of_compilation (fndecl=0x2ac339c14340)
    at ../../../trunk/gcc/tree-optimize.c:404


Reduced testcase is:

$ cat foo.f
      SUBROUTINE DLARRE (W, IBLOCK, WORK)
      INTEGER            M, I
      INTEGER            IBLOCK(*)
      DOUBLE PRECISION   W(*), WORK(*)
      DO JBLK = 1, 10
         DO I = 1, 10
           M = M + 1
           W(M) = -WORK(I)
           IBLOCK(M) = 0
         END DO
      END DO
      END
$ gfortran -O2 -ftree-vectorize foo.f
foo.f: In function ‘dlarre’:
foo.f:1: internal compiler error: Segmentation fault


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
          Component|fortran                     |middle-end
     Ever Confirmed|0                           |1
  GCC build triplet|                            |x86_64-linux
   GCC host triplet|suse-linux-x86_64           |x86_64-linux
 GCC target triplet|                            |x86_64-linux
           Keywords|                            |ice-on-valid-code
      Known to fail|                            |4.3.0
      Known to work|                            |4.2.2
   Last reconfirmed|0000-00-00 00:00:00         |2007-09-17 08:39:44
               date|                            |
            Summary|ice for fortran code with - |[4.3 regression] ICE for
                   |O2 -ftree-vectorize         |fortran code with -O2 -
                   |                            |ftree-vectorize


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33449

Reply via email to