8.4 Basic concepts

Describes basic concepts relating to implementation-defined aspects of the Arm® C++ compiler and C++ library, as required by the ISO C++ Standard.

Start-up and termination in a freestanding environment (3.6.1).
The Arm® Compiler Arm C and C++ Libraries and Floating-Point Support User Guide describes the start-up and termination of programs.
Definition of main in a freestanding environment (3.6.1).
The main function must be defined.
Linkage of the main function (3.6.1).
The main function has external linkage.
Parameters of main (3.6.1).
The only permitted parameters for definitions of main of the form int main(parameters) are void and int, char**.
Dynamic initialization of static objects (3.6.2).
Static objects are initialized before the first statement of main.
Dynamic initialization of thread-local objects (3.6.2).
Thread-local objects are initialized at the first odr-use.
Pointer safety (
This implementation has relaxed pointer safety.
Extended signed integer types (3.9.1).
No extended integer types exist in the implementation.
Representation and signedness of the char type (3.9.1).
The char type is unsigned and has the same values as unsigned char.
Representation of the values of floating-point types (3.9.1).
The values of floating-point types are represented using the IEEE format as follows:
  • float values are represented by IEEE single-precision values.
  • double and long double values are represented by IEEE double-precision values.
Representation of values of pointer type (3.9.2).
Values of pointer type are represented as 32-bit addresses in AArch32 state and 64-bit addresses in AArch64 state.
Support of extended alignments (3.11).
Alignments, including extended alignments, that are a power of two and are less than or equal to 0x10000000 are supported.
Non-ConfidentialPDF file icon PDF version100067_0609_00_en
Copyright © 2014–2017 Arm Limited (or its affiliates). All rights reserved.