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

            Bug ID: 95499
           Summary: ICE: during GIMPLE pass: ssa / segfault in verify_ssa
                    / OpenMP target with deferred-length CHARACTER
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, openmp
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
  Target Milestone: ---

Created attachment 48668
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48668&action=edit
Test case - compile with "gfortran -fopenmp"

The attached testcase, found when trying to test something else.

The following bit causes the problem:

    character(len=:), allocatable :: str    
    !$omp target map(from:str)


Fails with GCC trunk as:

during GIMPLE pass: ssa
test.f90:15:0:

   15 |   deallocate (A, my_str)
      | 
internal compiler error: Segmentation fault
0xeb42af crash_signal
        ../../repos/gcc/gcc/toplev.c:328
0x10d8c14 verify_ssa(bool, bool)
        ../../repos/gcc/gcc/tree-ssa.c:1070
0xdda8d5 execute_function_todo
        ../../repos/gcc/gcc/passes.c:1992
0xddb57e execute_todo
        ../../repos/gcc/gcc/passes.c:2039


With the distro's GCC 7 + 9 + 10, I get ("gfortran-10 -foffload=disable
-fopenmp"):

during IPA pass: fnsummary
test.f90:15: internal compiler error: tree code ‘ssa_name’ is not supported in
LTO streams


In the debugger, I see:

Program received signal SIGSEGV, Segmentation fault.
verify_ssa (check_modified_stmt=check_modified_stmt@entry=true,
check_ssa_operands=check_ssa_operands@entry=true) at
../../repos/gcc/gcc/gimple.h:6626
6626      return gimple_code (g) == GIMPLE_NOP;

(gdb) list
6621    /* Returns TRUE if statement G is a GIMPLE_NOP.  */
6622
6623    static inline bool
6624    gimple_nop_p (const gimple *g)
6625    {
6626      return gimple_code (g) == GIMPLE_NOP;
6627    }

(gdb) bt
#0  verify_ssa (check_modified_stmt=check_modified_stmt@entry=true,
check_ssa_operands=check_ssa_operands@entry=true) at
../../repos/gcc/gcc/gimple.h:6626
#1  0x0000000000d604a6 in execute_function_todo (fn=0x7ffff78cf0b0,
data=<optimized out>) at ../../repos/gcc/gcc/passes.c:1992
#2  0x0000000000d611dd in do_per_function (data=0x8040, callback=0xd60230
<execute_function_todo(function*, void*)>) at ../../repos/gcc/gcc/passes.c:1640
#3  execute_todo (flags=32832) at ../../repos/gcc/gcc/passes.c:2039
#4  0x0000000000d639a3 in execute_one_pass (pass=0x25b23d0) at
../../repos/gcc/gcc/passes.c:2539

Reply via email to