7.3 Translation limits

Describes implementation-defined aspects of the Arm® C compiler and C library relating to translation, as required by the ISO C standard.

Section 5.2.4.1 Translation limits of the ISO/IEC 9899:2011 standard requires minimum translation limits that a conforming compiler must accept. The following table gives a summary of these limits. In this table, a limit of memory indicates that Arm Compiler 6 imposes no limit, other than that imposed by the available memory.

Table 7-1 Translation limits

Description Translation limit
Nesting levels of block. 256 (can be increased using the -fbracket-depth option.)
Nesting levels of conditional inclusion. memory
Pointer, array, and function declarators (in any combination) modifying an arithmetic, structure, union, or void type in a declaration. memory
Nesting levels of parenthesized declarators within a full declarator. 256 (can be increased using the -fbracket-depth option.)
Nesting levels of parenthesized expressions within a full expression. 256 (can be increased using the -fbracket-depth option.)
Significant initial characters in an internal identifier or a macro name. memory
Significant initial characters in an external identifier. memory
External identifiers in one translation unit. memory
Identifiers with block scope declared in one block. memory
Macro identifiers simultaneously defined in one preprocessing translation unit. memory
Parameters in one function definition. memory
Arguments in one function call. memory
Parameters in one macro definition. memory
Arguments in one macro invocation. memory
Characters in a logical source line. memory
Characters in a string literal. memory
Bytes in an object. SIZE_MAX
Nesting levels for #include files. memory
Case labels for a switch statement. memory
Members in a single structure or union. memory
Enumeration constants in a single enumeration. memory
Levels of nested structure or union definitions in a single struct-declaration-list. 256 (can be increased using the -fbracket-depth option.)
Non-ConfidentialPDF file icon PDF version100067_0609_00_en
Copyright © 2014–2017 Arm Limited (or its affiliates). All rights reserved.