Keil Logo

LLVM component versions and language compatibility

1.3 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], [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

Component Version More information
Clang 4.0 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.

C11 [COMMUNITY]

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.

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++03

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:

  • Concurrency constructs or other constructs enabled through the following standard library headers are [ALPHA] supported:

    • <thread>
    • <mutex>
    • <shared_mutex>
    • <condition_variable>
    • <future>
    • <chrono>
    • <atomic>
    • For more details, contact the Arm Support team.

  • The thread_local keyword is not supported.

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

C++14 [BETA]

The base Clang and libc++ components provide C++14 language functionality. Arm has performed limited testing of these features, therefore these are [BETA] features.

Note that C++14 is the default language standard for C++ code. However, usage of the new C++14 language features is a beta feature. Arm recommends using the -std option to restrict the language standard to C++11.

Concurrency constructs or other constructs enabled through the following standard library headers are [ALPHA] supported:

  • <thread>
  • <mutex>
  • <shared_mutex>
  • <condition_variable>
  • <future>
  • <chrono>
  • <atomic>
  • For more details, contact the Arm Support team.

The thread_local keyword is not supported.

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

C++17 [COMMUNITY]

The base Clang and libc++ components provide C++17 language functionality. However, Arm has performed no independent testing of these features and therefore these are [COMMUNITY] features.

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:

Non-ConfidentialPDF file icon PDF version100066_0610_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved. 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.