https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89027
Bug ID: 89027 Summary: [9 Regression] ICE: verify_gimple failed (Error: non-trivial conversion at assignment) Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-checking, ice-on-valid-code, openmp Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gfortran-9.0.0-alpha20190120 snapshot (r268107) ICEs when compiling the following testcase reduced from libgomp/testsuite/libgomp.fortran/nestedfn5.f90 w/ -O2 -fexceptions -fopenmp -fno-tree-dce: subroutine bar integer :: a, b a = 1 b = 2 call foo contains subroutine foo !$omp simd linear(a:2) linear(b:1) do a = 1, 20, 2 b = b + 1 end do !$omp end simd if (a /= 21 .or. b /= 12) STOP 1 !$omp task depend(out : a) a = a + 1 !$omp end task end subroutine foo end subroutine bar % powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190120 -mvsx -O2 -fexceptions -fopenmp -fno-tree-dce -c epm9nnl9.f90 epm9nnl9.f90:1:0: 1 | subroutine bar | Error: non-trivial conversion at assignment integer(kind=4)[4] integer(kind=4)[16] # .MEM_40 = VDEF <.MEM_39> D.2257 ={v} {CLOBBER}; during GIMPLE pass: vect epm9nnl9.f90:1:0: internal compiler error: verify_gimple failed 0xdebaf9 verify_gimple_in_cfg(function*, bool) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree-cfg.c:5422 0xcc1e0e execute_function_todo /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/passes.c:1977 0xcc27aa execute_todo /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/passes.c:2031 (While my target here is powerpc, the ICE is not target-specific. It can be reproduced on x86_64 as well, obviously w/o -mvsx.)