I warn anybody before using ARM Keil 4.13a. It generates defective code. I have spent several hours with debugging a code that has been already worked. The problem affects local variables of functions and passing arguments. Code has been wrongly compiled without any optimization. I have no courage and time to test optimizations.
I also encourage Keil not to publish Keil 4.13a any more.
Keil 4.12 seems to be OK.
By the way, for your information:
1. I did find a linker bug in MDK 4.12 (acknowledged by Keil and reproducible on small images (they won't link), fixed in MDK 4.13.
2. I believe "IB Shy" also mentioned that he has found a series of compiler bugs presumably fixed in MDK 4.13 !
"I believe "IB Shy" also mentioned that he has found a series of compiler bugs presumably fixed in MDK 4.13 !"
I found one bug in code produced by the compiler, with regards inline optimisation. Fixed in 4.13a.
Much like Tamir's experience, I have previously received the "do not believe" from the support team, where they just said it was my code at fault - I gave them plenty of evidence that they seemed to simply ignore. I spent a crazy amount of time tracking the problem down further and I finally persuaded them that it was actually a fault in their code. It was subsequently fixed (way after I had finished the project using a fix of my own).
When I suspected a compiler fault, I spent a considerable amount of time tracking it down to the absolute minimum code snippet and then documenting the details. I think, as a result of the detail and evidence I provided, I got a reasonably swift acknowledgement of the problem.
But ... I think it was time well spent, because in the long run I probably got a fix a damn sight quicker than if I'd just sent an email to Keil saying the compiler produced defective code.
My problem with the OPs original text is that his evidence is really poor, in both explanation and example provided. He may have found something, we don't know. Looking at it from Keil support's side, I hope they have enough to go on - At the moment, I dont think they do.