Why is this an issue?

Functions and tasks declared outside of a class should have an explicit lifetime.

How to fix it

Code examples

Noncompliant code example

function logic [2:0] foo( // Noncompliant: No "automatic" or "static" lifetime
  logic [2:0] a,
  logic [2:0] b
);
  return a ^ b;
endfunction : foo

Compliant solution

function automatic logic [2:0] foo(
  logic [2:0] a,
  logic [2:0] b
);
  return a ^ b;
endfunction : foo