Rileva l'aggiunta di puntatori
Giustificazione: In CODESYS, l'aritmetica dei puntatori è generalmente consentita e può essere utilizzata in modo appropriato. Tuttavia, è anche una fonte di errori. Pertanto, esistono regole di programmazione che generalmente vietano l'aritmetica dei puntatori. Questo test può verificare tale requisito.
Importanza: Medio
Esempio
PROGRAM PLC_PRG
VAR
iTest:INT;
ariTest:ARRAY[0..10] OF INT;
{attribute 'analysis':='-111'}
piTest:POINTER TO INT;
i:INT;
END_VAR
piTest := ADR(ariTest[0]); // OK
piTest^:= 0;
piTest := ADR(ariTest) + SIZEOF(INT); // SA0064
piTest^:= 1;
piTest := ADR(ariTest) + 6; // SA0064
piTest^:= 3;
piTest := ADR(ariTest[10]);
FOR i:=0 TO 10 DO
piTest^ := i;
piTest := piTest + 2; // SA0064
END_FOR
--> SA0064: Addition of pointer