A floating point value is implicitly converted to a narrower floating point type.
This is not necessarily wrong but make sure that it is really what was supposed to be implemented. If so, add an explicit cast.
function automatic f(real r); shortreal s = r; endfunction
function automatic f(real r); shortreal s = shortreal'(r); endfunction