Why is this an issue?

A integer value is implicitly converted to a floating point type (real or shortreal).

This is not necessarily wrong but make sure that it is really what was supposed to be implemented. If so, add an explicit cast.

How to fix it

Code examples

Noncompliant code example

function automatic f(int i);
  real r = i;
endfunction

Compliant solution

function automatic f(int i);
  real r = real'(i);
endfunction