https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91640

            Bug ID: 91640
           Summary: [9/10 Regression] ICE: gimplification failed
                    (contiguous expr)
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20190113 and 20190120.
For reference a z0_verify.f90 :

program p
   real :: z(3) = 1.0
   print *, is_contiguous(z)
   print *, is_contiguous(-z)
   print *, is_contiguous(2.0*z)
end

$ gfortran-10-20190901 z0_verify.f90 && ./a.out
 T
 T
 T


Test cases :

$ cat z1.f90
program p
   real :: z(3) = 1.0
   call sub (-z)
contains
   subroutine sub (x)
      real, contiguous :: x(:)
   end
end

$ cat z2.f90
program p
   real :: z(3) = 1.0
   call sub (2.0*z)
contains
   subroutine sub (x)
      real, contiguous :: x(:)
   end
end


$ gfortran-9-20190113 -c z1.f90
$
$ gfortran-10-20190901 -c z1.f90
gimplification failed:
-_7 <negate_expr 0x7fcd72b2cde0
    type <real_type 0x7fcd729992a0 real(kind=4) sizes-gimplified SF
        size <integer_cst 0x7fcd7297dde0 constant 32>
        unit-size <integer_cst 0x7fcd7297ddf8 constant 4>
        align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fcd729992a0 precision:32
        pointer_to_this <pointer_type 0x7fcd729997e0>>

    arg:0 <ssa_name 0x7fcd72984900 type <real_type 0x7fcd729992a0 real(kind=4)>

        def_stmt _7 = z[_6];
        version:7>
    z1.f90:3:0 start: z1.f90:3:0 finish: z1.f90:3:0>
z1.f90:3:0:

    3 |    call sub (-z)
      |
internal compiler error: gimplification failed
0x9f6051 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:14144
0xa08c28 gimplify_modify_expr
        ../../gcc/gimplify.c:5747
0x9f5b0a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13135
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
        ../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779
0x9f54ec gimplify_and_add(tree_node*, gimple**)
        ../../gcc/gimplify.c:480
0x9f54ec gimplify_loop_expr
        ../../gcc/gimplify.c:1823
0x9f54ec gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13340
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
        ../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779
0x9f9f03 gimplify_bind_expr
        ../../gcc/gimplify.c:1417
0x9f4e42 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13336
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
        ../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
        ../../gcc/gimplify.c:6779

Reply via email to