V583. The '?:' operator, regardless of its conditional expression, always returns one and the same value.
Analyzer found a potential error with utilization of "?:" ternary operator. Regardless of its conditional expression, the same operation will be performed. It is quite possible that a misprint is present in the source code.
Let's review the most basic example:
int A = B ? C : C;
In all cases the value of C variable will be assigned to the A variable.
Let's review how such a mistake could appear in the source code of real-life application:
fovRadius = tan(DEG2RAD((rollAngleClamped % 2 == 0 ? cg.refdef.fov_x : cg.refdef.fov_x) * 0.52)) * sdist;
The code here is formatted. In the program's sources this is a single line of code and it is not surprising that the misprint could be overlooked quite easily. The essence of an error is that the member of the "fov_x" structure is used twice.
The correct code:
fovRadius = tan(DEG2RAD((rollAngleClamped % 2 == 0 ? cg.refdef.fov_x : cg.refdef.fov_y) * 0.52)) * sdist;
This diagnostic is classified as:
You can look at examples of errors detected by the V583 diagnostic.