SA0062: Ausdruck ist konstant
Funktion | Ermittelt die Verwendung von Ausdrücken, die zur Laufzeit einen immer gleichen Wert haben. |
Begründung | Ein komplexer Ausdruck, der immer wieder berechnet wird und dabei stets den gleichen Wert erzeugt, kann auf einen Fehler hinweisen. Dies gilt insbesondere, wenn etwas anderes beabsichtigt war. In jedem Fall belastet der Ausdruck die Laufzeit des Programms unnötig. |
Wichtigkeit | Mittel |
Beispiele:
PROGRAM MAIN
VAR
bVar1 : BOOL;
bVar2 : BOOL;
nVar : INT;
END_VARIF MAX(nVar,1) >= 1 THEN // => SA0062
;
END_IF
bVar1 := bVar1 AND NOT TRUE; // => SA0062
bVar2 := bVar1 OR TRUE; // => SA0062
bVar2 := bVar1 OR NOT FALSE; // => SA0062
bVar2 := bVar1 AND FALSE; // => SA0062
IF (bVar1 = FALSE) THEN // => SA0062
;
END_IF
IF NOT bVar1 THEN // => no error
;
END_IF
nVar := 0;
IF nVar <> 0 THEN // => SA0062
;
END_IF