SA0053: Spostamento bitwise troppo grandePermalink

Rileva se la larghezza del tipo di dati dell'operando è stata superata o meno nel caso di uno spostamento bitwise (spostamento di bit) degli operandi.

Giustificazione: Se un'operazione di shift supera la larghezza del tipo di dati, viene generata la costante ‎0‎. Se uno spostamento di rotazione supera la larghezza del tipo di dati, è difficile da leggere. Pertanto, il valore di rotazione deve essere ridotto.

Importanza: Alto

Esempio

PROGRAM PLC_PRG
VAR
	byTemp1 : BYTE;
	wTemp2 : WORD;
	dwTemp3 : DWORD;
	lwTemp4 : LWORD;
END_VAR
byTemp1 := SHR(byTemp1, BYTE#25);
wTemp2 := SHL(wTemp2, BYTE#45);
dwTemp3 := ROR(dwTemp3, BYTE#78);
lwTemp4 := ROL(lwTemp4, BYTE#111);

--> SA0053: Too big bitwise shift