How to Fix Polyspace CodeProver Orange Overflow errors
7 views (last 30 days)
Show older comments
Hello,
I am getting the below Orange Overflow error due to operator *
How to fix these Overflow errors as we know this operation is not going to generate a result bigger than the datatype of int32 ?
3 Comments
DGM
on 12 Aug 2024
I'm not sure what you mean by needing justification. These three questions are valid and deserve an answer, but to my understanding, they constitute three different instances of a warning message of similar form -- the tool is complaining that an arithmetic operation may cause data loss, but it isn't aware of higher-level constraints which may prevent the issue.
I don't have or use Polyspace, so I can't direcltly provide a confident answer myself. I may be blind to some details, but I estimate that a generalized answer which answers one of the questions should answer all three. If I'm wrong, someone is free to correct me. My uncertainty is why I chose to not close these two which I only think are duplicates. I'm just trying to make sure that someone more informed can see the multiplicity of questions of similar form. Hopefully someone can help you out.
Answers (1)
Akshat Dalal
on 17 Aug 2024
Hi Dinesh,
The unexpected orange integer overflow warning can be due to the below two reasons:
- Shared Variable: If you are performing multitasking analysis in Polyspace, the variable 'sx32_LastMeas' could be shared. Consequently, Polyspace detects that its value might change between instances.For more information on configuring shared variables during multitasking analysis, please refer to the following documentation: www.mathworks.com/help/releases/R2020b/codeprover/ug/protections-for-shared-variables.html
- Volatile Variable: If 'sx32_LastMeas' is declared as a Volatile variable, Polyspace treats it as a 'permanent random' variable because its value can change within its entire range between consecutive read accesses. For more information on Volatile variables in Polyspace, you can refer the following documentation: www.mathworks.com/help/releases/R2020b/polyspace_ada/ada_ref/volatile-variables.html
Therefore, if 'sx32_LastMeas' falls into either of these categories, Polyspace considers its entire range for analysis, sint32 in this case. Therefore, Polyspace reports a probable 'Integer overflow' Orange check even if it is theoretically not possible.
0 Comments
See Also
Categories
Find more on Code Prover Analysis in Simulink in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!