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.
No - as already noted, it is very old!
I think it's already been mentioned in this thread that it is a common response of a less-experienced developer to be quick to blame the compiler...
Which is one of the reasons why it's so important to have definite, compelling evidence of a bug.