Compiler bug

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Compiler bug

763 Views
SVC2
Contributor II

Hi,

 

I recently update my CodeWarrior compiler with a latest patch.

 

As a consequence to this, re-compiling previous release codes resulted in a different checksum and size. Be aware of this issue if your process replies on checksum to validate images.

 

The second and more important problem is that there seems to be a bug in the new patch: In the following code:

 

 

 

//code1if( (msa_err==MSA_STS_MODULE_BUSY ||      msa_err==MSA_STS_STILL_PROCESSING)              && (count <= 5)){       // Increment    count++;       // delay    //…    // Do Something    printfUART(1,"DELAY msa_err(0x%X), count==%d",msa_err, count);}printfUART(1,"msa_err(0x%X), count==%d",msa_err, count);

 

 

The body of the if statement never executes (when condition is true) and count remains 0.

 

 

If I replace the code with

 

//code2int b1= (msa_err==MSA_STS_MODULE_BUSY ||         msa_err==MSA_STS_STILL_PROCESSING);int b2= (count<= 5);int b3 = b1 && b2;if(b3){    // same a sabove}

 

 It works well.


This has been observed with Level1 optimization.

 

  • With No Optimizationl, code1 works.
  • The code size increased by 7% by turning optimization off.
  • Prior to the patch, code1 worked well with Level1 optimization.

 

Attached is a list of plugins.

 

S.

Labels (1)
0 Kudos
Reply
1 Reply

353 Views
CrasyCat
Specialist III

Hello

 

You need to submit a service request for that.

I would recommend you to submit a service request for that.

Click here to submit a service request.

Make sure to attach a reproducible project and installed product information to the service request.
To generate the required information:
- Start CodeWarrior
- Open the project
- Select "Help" -> "Pack and Go" and follow instructions on the screen.

Attach the generated .zip file to the SR.

 

CrasyCat

0 Kudos
Reply