Functions and tasks declared outside of a class should have an explicit lifetime.
function logic [2:0] foo( // Noncompliant: No "automatic" or "static" lifetime logic [2:0] a, logic [2:0] b ); return a ^ b; endfunction : foo
function automatic logic [2:0] foo( logic [2:0] a, logic [2:0] b ); return a ^ b; endfunction : foo