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.
It must be at least as likely that the fault lies in your source code?
It is quite common that a change of compiler will bring out previously hidden faults in the source code that just happened not to manifest previously; ie, you were lucky with 4.12, but your luck has just run out with 4.13a.
This has been my original report to Keil Intl before I have found that this issue affect also regular function call. I do not know what triggers this issue.
-------------------------------------------------------------------------- Please look at this image: www.penguin.cz/.../CtorFailure.gif
Dear Keil support,
I am facing a problem that automatic variables are not initialised properly - see attached image
I have debugged a code and ctor is called in both cases. But for a variable on stack it does not initialise object properly.
class string { private: static char Dummy; char *ch; unsigned int maxlen; unsigned int size; void resize(unsigned int NewMaxlen); public: explicit string(unsigned len); //explicit is expanded to private: for obsolette compilers public: string(void) {size=maxlen=0;ch=0;};
...................................................................
View all questions in Keil forum