Tool/software: TI C/C++ Compiler
Using C++ in embedded applications enables the possibility for dynamic linked operations, it is very good for ObjectOrientation approaches.
But: The standard vtable implementations are in prone of error:
Any data error in not well tested software (during development) or for hard safety critical levels can destroy the virtual table pointer inside the data are (in RAM). It is not detected by any mechanism, faulty machine code is executed and the application is disturbed. Such an error is hard to debug and not admissible for safety critical applications.
Hence virtual operations should not be used. This problem was addressed by the gcc compiler team, and the --enable-vtable-verify option was introduced, but nevertheless with too less attentiveness by C++ communities. The problem seems to be not recognized by some persons.
In my mind that is an essential problem. Some incompatibleness which existing libraries (not translated with --enable-vtable-verify) may be a problem by PC developer, but not for Embedded target developer (which are not used by a majority of libraries). For embedded target the safety is important.
For algorithm which uses virtual operations the less increased calculation time should not be a problem (the price for more safety).
It is a general problem. It should be solved in next versions of the compiler suite.