https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92876
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- I believe this code is invalid as "s" is a device routine but it call outside of 'acc kernels'/'acc parallel' construct. – If one adds either around "call s()" it no longer ICEs. Still, even invalid code should not ICE.