SA0118: Initializations not using constants

Function

Determines initializations that do not assign constants.

Reason

Initializations should be as consistent as possible and should not refer to other variables. In particular, you should avoid function calls during initialization, since this can lead to access to uninitialized data.

Importance

Medium

Samples:

Function F_ReturnDWORD:

FUNCTION F_ReturnDWORD : DWORD

MAIN program:

PROGRAM MAIN
VAR CONSTANT
    c1 : DWORD := 100;
END_VAR
VAR
    n1 : DWORD := c1;
    n2 : DWORD := F_ReturnDWORD();                  // => SA0118
    n3 : DWORD := 150;
    n4 : DWORD := n3;                               // => SA0118
END_VAR