Using module variables as dimensions in function arguments

I’m curious, @certik, how from a compiler writer’s perspective

integer, intent(in) :: n, x(n)

is handled differently from

integer, intent(in) :: n, x(*)

I don’t use such explicit-shape or assumed-size passing anymore, but way back when I did, my assumption as a user was that to get bounds checking I needed to use the former (along with compiler flags), but otherwise there was no difference.