# title
ARM Compiler v5.06 for uVision armcc User Guide

# topic.label
ARM Compiler v5.06 for uVision armcc User Guide

# topic.topics[].topics[].label
Compiler command-line options listed by group

# topic.topics[].topics[].label
Using stdin to input source code to the compiler

# topic.topics[].topics[].label
Filename suffixes recognized by the compiler

# topic.topics[].topics[].label
Factors influencing how the compiler searches for header files

# topic.topics[].topics[].label
Compiler command-line options and search paths

# topic.topics[].topics[].label
Compiler search rules and the current place

# topic.topics[].topics[].label
Code compatibility between separately compiled and assembled modules

# topic.topics[].topics[].label
Minimizing code size by eliminating unused functions during compilation

# topic.topics[].topics[].topics[].topics[].label
Vectorization
on loops containing pointers

# topic.topics[].topics[].topics[].label
Minimizing compilation build time with a single armcc invocation

# topic.topics[].topics[].topics[].label
Effect of --multifile on compilation build time

# topic.topics[].topics[].topics[].label
Minimizing compilation build time with parallel make

# topic.topics[].topics[].label
Performance benefits of compiler intrinsics

# topic.topics[].topics[].label
Compiler intrinsics for controlling IRQ and FIQ interrupts

# topic.topics[].topics[].label
Compiler intrinsics for inserting optimization barriers

# topic.topics[].topics[].label
Compiler intrinsics for inserting native instructions

# topic.topics[].topics[].label
Compiler intrinsics for Digital Signal Processing (DSP)

# topic.topics[].topics[].label
Compiler support for European Telecommunications Standards Institute (ETSI) basic operations

# topic.topics[].topics[].label
Overflow and carry status flags for C and C++ code

# topic.topics[].topics[].label
Texas Instruments (TI) C55x intrinsics for optimizing C code

# topic.topics[].topics[].label
Compiler support for accessing registers using named register variables

# topic.topics[].topics[].label
Compiler and processor support for bit-banding

# topic.topics[].topics[].label
How the compiler handles bit-band objects placed outside bit-band regions

# topic.topics[].topics[].label
Compiler support for thread-local storage

# topic.topics[].topics[].label
Automatic Precompiled Header (PCH) file processing

# topic.topics[].topics[].label
Precompiled Header (PCH) file processing and the header stop point

# topic.topics[].topics[].label
Precompiled Header (PCH) file creation requirements

# topic.topics[].topics[].label
Compilation with multiple Precompiled Header (PCH) files

# topic.topics[].topics[].label
Manually specifying the filename and location of a Precompiled Header (PCH) file

# topic.topics[].topics[].label
Selectively applying Precompiled Header (PCH) file processing

# topic.topics[].topics[].label
Suppressing Precompiled Header (PCH) file processing

# topic.topics[].topics[].label
Message output during Precompiled Header (PCH) processing

# topic.topics[].topics[].label
Performance issues with Precompiled Header (PCH) files

# topic.topics[].topics[].label
Default compiler options that are affected by optimization level

# topic.topics[].topics[].label
Compiler optimization for code size versus speed

# topic.topics[].topics[].label
Compiler optimization levels and the debug view

# topic.topics[].topics[].label
Selecting the target processor at compile time

# topic.topics[].topics[].label
Optimization of loop termination in C code

# topic.topics[].topics[].label
Compiler optimization and the volatile keyword

# topic.topics[].topics[].label
Code metrics for measurement of code size and data size

# topic.topics[].topics[].label
Benefits of reducing debug information in objects and libraries

# topic.topics[].topics[].label
Methods of reducing debug information in objects and libraries

# topic.topics[].topics[].label
Guarding against multiple inclusion of header files

# topic.topics[].topics[].label
Methods of minimizing function parameter passing overhead

# topic.topics[].topics[].label
Returning structures from functions through registers

# topic.topics[].topics[].label
Functions that return the same result when called with the same arguments

# topic.topics[].topics[].label
Recommendation of postfix syntax when qualifying functions with ARM function modifiers

# topic.topics[].topics[].label
Automatic function inlining and static functions

# topic.topics[].topics[].label
Inline functions and removal of unused out-of-line functions at link time

# topic.topics[].topics[].label
Automatic function inlining and multifile compilation

# topic.topics[].topics[].label
Restriction on overriding compiler decisions about function inlining

# topic.topics[].topics[].label
Compiler storage of data objects by natural byte alignment

# topic.topics[].topics[].label
Relevance of natural data alignment at compile time

# topic.topics[].topics[].label
The __packed qualifier and unaligned data access in C and C++ code

# topic.topics[].topics[].label
Performance penalty associated with marking whole structures as packed

# topic.topics[].topics[].label
Unaligned Load Register (LDR) instructions generated by the compiler

# topic.topics[].topics[].label
Comparisons of an unpacked struct, a __packed struct, and a struct with individually __packed fields, and of a __packed struct and a #pragma packed struct

# topic.topics[].topics[].label
Compiler support for floating-point arithmetic

# topic.topics[].topics[].label
Default selection of hardware or software floating-point support

# topic.topics[].topics[].label
Example of hardware and software support differences for floating-point arithmetic

# topic.topics[].topics[].label
Limitations on hardware handling of floating-point arithmetic

# topic.topics[].topics[].label
Implementation of Vector Floating-Point (VFP) support code

# topic.topics[].topics[].label
Compiler and library support for half-precision floating-point numbers

# topic.topics[].topics[].label
Compiler support for floating-point computations and linkage

# topic.topics[].topics[].label
Compiler options for floating-point linkage and computations

# topic.topics[].topics[].label
Floating-point linkage and computational requirements of compiler options

# topic.topics[].topics[].label
Processors and their implicit Floating-Point Units (FPUs)

# topic.topics[].topics[].label
Integer division-by-zero errors in C code

# topic.topics[].topics[].label
Software floating-point division-by-zero errors in C code

# topic.topics[].topics[].label
Hexadecimal floating-point numbers in C99

# topic.topics[].topics[].label
Macros with a variable number of arguments in C99

# topic.topics[].topics[].label
Mixed declarations and statements in C99

# topic.topics[].topics[].label
New block scopes for selection and iteration statements in C99

# topic.topics[].topics[].label
Additional <math.h> library functions in C99

# topic.topics[].topics[].label
Extended integer types and functions in <inttypes.h> and <stdint.h> in C99

# topic.topics[].topics[].label
<fenv.h> floating-point environment access in C99

# topic.topics[].topics[].label
<stdio.h> snprintf family of functions in C99

# topic.topics[].topics[].label
<tgmath.h> type-generic math macros in C99

# topic.topics[].topics[].label
<wchar.h> wide character I/O functions in C99

# topic.topics[].topics[].label
How to prevent uninitialized data from being initialized to zero

# topic.topics[].topics[].label
Severity of compiler diagnostic messages

# topic.topics[].topics[].label
Options that change the severity of compiler diagnostic messages

# topic.topics[].topics[].label
Controlling compiler diagnostic messages with pragmas

# topic.topics[].topics[].label
Prefix letters in compiler diagnostic messages

# topic.topics[].topics[].label
Compiler exit status codes and termination messages

# topic.topics[].label
Using the Inline and Embedded Assemblers of the ARM Compiler

# topic.topics[].topics[].label
Compiler support for inline assembly language

# topic.topics[].topics[].label
Inline assembler support in the compiler

# topic.topics[].topics[].label
Restrictions on inline assembler support in the compiler

# topic.topics[].topics[].label
Inline assembly language syntax with the __asm keyword in C and C++

# topic.topics[].topics[].label
Inline assembly language syntax with the asm keyword in C++

# topic.topics[].topics[].label
Inline assembler rules for compiler keywords __asm and asm

# topic.topics[].topics[].label
Restrictions on inline assembly operations in C and C++ code

# topic.topics[].topics[].label
Inline assembler register restrictions in C and C++ code

# topic.topics[].topics[].label
Inline assembler processor mode restrictions in C and C++ code

# topic.topics[].topics[].label
Inline assembler Thumb instruction set restrictions in C and C++ code

# topic.topics[].topics[].label
Inline assembler Vector Floating-Point (VFP) restrictions in C and C++ code

# topic.topics[].topics[].label
Inline assembler instruction restrictions in C and C++ code

# topic.topics[].topics[].label
Miscellaneous inline assembler restrictions in C and C++ code

# topic.topics[].topics[].label
Inline assembler and register access in C and C++ code

# topic.topics[].topics[].label
Inline assembler and the # constant expression specifier in C and C++ code

# topic.topics[].topics[].label
Inline assembler and instruction expansion in C and C++ code

# topic.topics[].topics[].label
Expansion of inline assembler instructions that use constants

# topic.topics[].topics[].label
Expansion of inline assembler load and store instructions

# topic.topics[].topics[].label
Inline assembler effect on processor condition flags in C and C++ code

# topic.topics[].topics[].label
Inline assembler expression operands in C and C++ code

# topic.topics[].topics[].label
Inline assembler register list operands in C and C++ code

# topic.topics[].topics[].label
Inline assembler intermediate operands in C and C++ code

# topic.topics[].topics[].label
Inline assembler function calls and branches in C and C++ code

# topic.topics[].topics[].label
Inline assembler branches and labels in C and C++ code

# topic.topics[].topics[].label
Embedded assembler support in the compiler

# topic.topics[].topics[].label
Effect of compiler ARM and Thumb states on embedded assembler

# topic.topics[].topics[].label
Restrictions on embedded assembly language functions in C and C++ code

# topic.topics[].topics[].label
Compiler generation of embedded assembly language functions

# topic.topics[].topics[].label
Access to C and C++ compile-time constant expressions from embedded assembler

# topic.topics[].topics[].label
Differences between expressions in embedded assembler and C or C++

# topic.topics[].topics[].label
Manual overload resolution in embedded assembler

# topic.topics[].topics[].label
__offsetof_base keyword for related base classes in embedded assembler

# topic.topics[].topics[].label
Compiler-supported keywords for calling class member functions in embedded assembler

# topic.topics[].topics[].label
Calling nonstatic member functions in embedded assembler

# topic.topics[].topics[].label
Accessing sp (r13), lr (r14), and pc (r15)

# topic.topics[].topics[].label
Differences in compiler support for inline and embedded assembly code

# topic.topics[].topics[].label
C99 language features available in C++ and C90

# topic.topics[].topics[].label
Specialization of nonmember function templates

# topic.topics[].topics[].label
Standard C and Standard C++ language extensions

# topic.topics[].topics[].label
Anonymous classes, structures and unions

# topic.topics[].topics[].label
Structure, union, enum, and bitfield extensions

# topic.topics[].topics[].label
GNU extensions to the C and C++ languages

# topic.topics[].topics[].label
#pragma weak symbol, #pragma weak symbol1 = symbol2

# topic.topics[].topics[].topics[].label
Indicating loop iteration counts to the compiler with __promise(expr)

# topic.topics[].topics[].label
Character sets and identifiers in ARM C and C++

# topic.topics[].topics[].label
Operations on basic data types ARM C and C++

# topic.topics[].topics[].label
Structures, unions, enumerations, and bitfields in ARM C and C++

# topic.topics[].topics[].label
Using the ::operator new function in ARM C++

# topic.topics[].topics[].label
Old-style C parameters in ARM C++ functions

# topic.topics[].topics[].label
Can I change the semihosting operation numbers?

# topic.topics[].topics[].label
ARMv6 SIMD intrinsics, summary descriptions, byte lanes, affected flags

# topic.topics[].topics[].label
ARMv6 SIMD intrinsics, compatible processors and architectures

# topic.topics[].topics[].label
ARMv6 SIMD instruction intrinsics and APSR GE flags

# topic.topics[].label
Summary Table of GNU Language Extensions

# topic.topics[].topics[].label
Structures, unions, enumerations, and bitfields

# topic.topics[].topics[].label
Behaviors considered undefined by the ISO C Standard

# topic.topics[].topics[].label
Standard C++ library implementation definition

# topic.topics[].label
C and C++ Compiler Implementation Limits

# metadata.contentDescription
This manual provides user information for the ARM compiler, armcc. armcc is an optimizing C and C++ compiler that compiles Standard C and Standard C++ source code into machine code for ARM architecture-based processors.