https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78043
--- Comment #2 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> --- Code from comment 0 only ICEs in combination with option -g*. Adding an output routine : $ cat z3.f90 module m common /xc/ a end module m2 use m end subroutine s(x) use m print *, a print *, x end program p use m2, only: z => a z = 1.0 call s(z) end $ gfortran-7-20161016 z3.f90 $ a.out 1.00000000 1.00000000 Deleting one module layer produces no ICE at all : $ cat z5.f90 module m2 common /xc/ a end subroutine s(x) use m2 print *, a print *, x end program p use m2, only: z => a z = 1.0 call s(z) end $ gfortran-7-20161016 z5.f90 $ a.out 1.00000000 1.00000000 $ gfortran-7-20161016 -g z5.f90 $ a.out 1.00000000 1.00000000