You copied the Doc URL to your clipboard.

ARM Compiler Software Development Guide : LLVM component versions and language compatibility

LLVM component versions and language compatibility

armclang is based on LLVM components and provides different levels of support for different source language standards.

Note

This topic includes descriptions of [ALPHA] 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

Component Version More information
Clang 3.8 http://clang.llvm.org

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
C90 Supported.
C99 Supported, with the exception of complex numbers.

[COMMUNITY] C11

The base Clang component provides C11 language functionality. However, ARM has performed no independent testing of these features so they are a community feature. Use of C11 library features is unsupported.

Note that C11 is the default language standard for C code. However, usage of the new C11 language features is a community feature. Use the -std option to restrict the language standard if required. Use the -Wc11-extensions option to warn about any use of C11-specific features.

C++98

Supported, including the use of C++ exceptions.

Support for -fno-exceptions is limited.

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.

C++11

Supported, with the following exceptions:

  • [ALPHA] ARM Compiler 6 provides access to the Atomic operations library <atomic> as an [ALPHA] feature.
  • The Thread support library is not supported. libc++ can only be used for creating single-threaded operations.

See Standard C++ library implementation definition in the ARM C and C++ Libraries and Floating-Point Support User Guide for more information.

[COMMUNITY] C++14

The base Clang and libc++ components provide C++14 language functionality. However, ARM has performed no independent testing of these features so they are a community feature.

Additional information

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:

Related information