SA0023: Complex return values
Determines complex return values that cannot be returned with a simple register copy of the processor. This includes structures, arrays, and return values of type STRING
(regardless of the size of the used memory).
Justification: This is a performance warning. If large values are returned as the result of a function, method, or property, then the processor copies them multiple times when executing the code. This can lead to runtime problems and should be avoided whenever possible. Performance can be improved by passing a structured value as VAR_IN_OUT
to a function or method and filling it in the function or method.
Importance: Medium
TYPE LargeStructure : STRUCT a : LINT; b : BOOL; END_STRUCT END_TYPE
FUNCTION Large_Return_Value_FUNC : LargeStructure // SA0023
Output in the Messages view:
SA0023: Complex return values