SA0005: Invalid addresses and data typesPermalink

Detects invalid addresses and data type specifications. Valid size prefixes in addresses: X for ‎BOOL‎ B for 1-byte data types, W for 2-byte data types, and D for 4-byte data types.

Justification: Variables located on direct addresses should preferably be associated with an address that corresponds to their data type width. It can be confusing for the reader of the code, for example, if a ‎DWORD‎ is assigned to a ‎BYTE‎ address.

Importance: Low

Example

PROGRAM Check_Address_Type_PRG
VAR
	iVar AT %QB0 : INT ;   // OK e. g.: %QW0
	xTest AT %QW1 : BOOL ; // OK e. g.: %QX1.0
END_VAR

iVar := iVar + INT#1;
xTest := NOT xTest;

--> SA0005: Invalid address for data type 'iVar'