Tool/software: TI C/C++ Compiler
I was very pleased to see the announcement that C++11/14 support has been added to the TI compiler tools for ARM and MSP430. While this is a big step forward, there are quite a few missing features:
• The compiler does not support embedded C++ run-time-support libraries. • The library supports wide chars (wchar_t), in that template functions and classes that are defined for char are also available for wchar_t. For example, wide char stream classes wios, wiostream, wstreambuf and so on (corresponding to char classes ios, iostream, streambuf) are implemented. However, there is no low-level file I/O for wide chars. Also, the C library interface to wide char support (through the C++ headers <cwchar> and <cwctype>) is limited as described above in the C library. • Two-phase name binding in templates, as described in [tesp.res] and [temp.dep] of the standard, is not implemented. • The export keyword for templates is not implemented. • A typedef of a function type cannot include member function cv-qualifiers. • A partial specialization of a class member template cannot be added outside of the class definition. • Constant expressions for target-specific types are only partially supported. • New character types (introduced in the C++11 standard) are not supported. • Unicode string literals (introduced in the C++11 standard) are not supported. • Universal character names in literals (introduced in the C++11 standard) are not supported. • Sequence points (introduced in the C++11 standard) are not supported. • Atomic operations (introduced in the C++11 standard) are not supported. • Strong compare and exchange (introduced in the C++11 standard) are not supported. • Bidirectional fences (introduced in the C++11 standard) are not supported. • Memory model (introduced in the C++11 standard) is not supported. • Data-dependency ordering for atomics and memory model (introduced in the C++11 standard) is not supported. • Propagating exceptions (introduced in the C++11 standard) is not supported. • Allowing atomics in signal handlers (introduced in the C++11 standard) is not supported. • Thread-local storage (introduced in the C++11 standard) is not supported. • Dynamic initialization and destruction with concurrency (introduced in the C++11 standard) is not supported.
That list is from the Compiler User's Guide (spnu151r.pdf), which covers this is a lot more detail than the announcement page. A lot of those I can live without, but I was really hoping the C++11 memory model would be supported.
In addition, there are other devices which don't have any C++11 support at present. Finally there is C11, which isn't supported at all.
Is there any roadmap information available regarding which (if any) of these will be tackled, and in what order?