The TASKING C compiler now supports a number of runtime error checks. When a check is enabled, the compiler adds
code to reveal run-time errors. Library routines show descriptive errors if a check fails.

Runtime error checks

bounds

Checks before every pointer update and pointer dereference that it points to a
valid object, be it in global memory, on the stack or on the heap.

case

Checks in a switch statement that a case value is not unhandled.

malloc

Checks every malloc() and free() call for validity.

stack

Checks for every function and for every variable length array that it does not run off the
stack.

The TASKING M16C toolchain can now generate profile reports.
Profiling instrumentation added by the compiler will update performance counters. After a program has run,
a runtime report will be generated. The EDE can present these profiling numbers in a flexible way.

The compiler can generate instrumentation counters for a call graph, function entry, function timers and
for every basic block.

The Motor Industry Software Reliability Association (MISRA) has released a new version of it's MISRA-C:2004.
The number of supported MISRA-C code checking rules has been increased from 117 to 122.
As before, you can specify in the EDE which rules should be checked, and the linker can generate a report of
compliance for all linked in modules.