LLVM component versions and language compatibility
armclang is based on LLVM components and provides different levels of support for different source language standards.
NoteThis topic includes descriptions of [ALPHA], [BETA], and [COMMUNITY] features. See Support level definitions.
Base LLVM components
Arm® Compiler 6 is based on the following LLVM components:
Table 1-1 LLVM component versions
Language support levels
Arm Compiler 6 in conjunction with libc++ provides varying levels of support for different source language standards:
Table 1-2 Language support levels
|Language standard||Support level|
|C99||Supported, with the exception of complex numbers.|
The base Clang component provides C11 language functionality. However, Arm has performed no independent testing of these features and therefore these are [COMMUNITY] features. Use of C11 library features is unsupported.
NoteC11 is the default language standard for C code. Use the
Supported, including the use of C++ exceptions.
See Standard C++ library implementation definition in the Arm® C and C++ Libraries and Floating-Point Support User Guide for more information about support for exceptions.
Supported, with the following exceptions:
See Standard C++ library implementation definition in the Arm® C and C++ Libraries and Floating-Point Support User Guide for more information.
The base Clang and libc++ components provide C++14 language functionality. However, Arm has not thoroughly tested these features and therefore they are [BETA] features.
See the armclang Reference Guide for information about Arm-specific language extensions.
For more information about libc++ support, see Standard C++ library implementation definition, in the Arm® C and C++ Libraries and Floating-Point Support User Guide.
The Clang documentation provides additional information about language compatibility: