How to Fix Polyspace CodeProver Orange Overflow errors

6 views (last 30 days)
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
Dinesh Kumar
Dinesh Kumar on 12 Aug 2024
Hello,
Do we need to justify the errors ? or we can provide some fixes for these errors ?
DGM
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.

Sign in to comment.

Answers (1)

Akshat Dalal
Akshat Dalal on 17 Aug 2024
Hi Dinesh,
The unexpected orange integer overflow warning can be due to the below two reasons:
  1. 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
  2. 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.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!