JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.
If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.
If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.
| CodeSonar® 9.2p0 | CONFIDENTIAL | CodeSecure Inc |
The armcc compiler model models the behavior of the ARM RealView Compiler Tools (RVCT) C/C++ compilers.
The armcc model also models the behavior of the Keil MDG-ARM Microcontroller Development Kit C/C++ Compiler.
The following file extensions are supported:
| Compiler model |
Modeled native compiler | Source file extensions | Description |
|---|---|---|---|
| armcc | ARM Real View Compiler Tools C/C++ compiler | .c, .cc, .cpp, .cxx, .ii (case insensitive) | Source file extensions indicate the source language. An extension of c or C indicates the C language; the other extensions indicate C++. |
| Platform Availability | The armcc compiler model is available for all platforms. | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Default Recognition/Handling | By default, compilations
are recognized and handled as follows.
|
|||||||||||||||
| Specifying Additional Mappings | If your compiler executable has a different name, specify a corresponding COMPILER_MODELS rule to map your executable name to the armcc model. |
For full details of all native compilers recognized by CodeSonar by default, see section Compilers Recognized by CodeSonar.
The armcc compiler model supports the following command arguments.
| Option | Additional Treatment in Model |
|---|---|
| --arm | Defines macro __arm. |
| --c90 | Sets compilation mode to C. Not passed to armcc invocation. |
| --c99 | Sets compilation mode to C. Not passed to armcc invocation. |
| --cpp | Sets compilation mode to C++. Not passed to armcc invocation. |
| --cpu value --cpu=value |
Determines which CPU-specific macros will be set. |
| --dollar | Specifies front end option --dollar. Not passed to armcc invocation. |
| --fp_mode value --fp_mode=value |
Passed to armcc invocation; no additional handling. |
| --fp16_format
value --fp16_format=value |
Passed to armcc invocation; no additional handling. |
| --fpu value --fpu=value |
Passed to armcc invocation; no additional handling. |
| --idlist --i dlist |
For each directory dir in the comma-separated string dlist, specifies front end option -Idir. Not passed to armcc invocation. |
| --jdlist --j dlist |
For each directory dir in the comma-separated string dlist, specifies front end option -Idir. Not passed to armcc invocation. |
| --preinclude
file --preinclude=file |
Specifies front end option --preincludefile. Not passed to armcc invocation. |
| --restrict | Specifies front end option --restrict. Not passed to armcc invocation. |
| --signed_chars | Specifies front end option --signed_chars. Not passed to armcc invocation. |
| --strict | Specifies front end option --strict. Not passed to armcc invocation. |
| --sys_include
file --sys_include=file |
Specifies front end option --sys_include file. Not passed to armcc invocation. |
| --thumb | Defines macro __thumb. |
| --unsigned_chars | Specifies front end option --unsigned_chars. Not passed to armcc invocation. |
| --vla | Specifies front end option --vla. Not passed to armcc invocation. |
| --via file --via=file |
Take options from file, one per line. |
If -e (-E, --e, -E) is specified, CodeSonar will ignore the compilation and will not generate any corresponding internal representation. If a CodeSonar project is based only on ignored compilations, it will have no contents and so will not be finalized.
The compilation mode is the mode in which armcc is invoked, and controls some of the front end options specified by the model. Compilation mode depends on the modeled build command as follows.
| ARM Extension | Compiler Model Action(s) | |
|---|---|---|
| Assembly Code |
Assembly code blocks may be included in programs. Blocks are
introduced by asm (C++) or
__asm (C and C++) and may
contain C/C++ comments.
Multiple instructions on a single line must be separated with a semicolon. Instructions that require more than one line must specify line continuation with the backslash character "\". |
Ignores everything in asm{} and __asm{} blocks. |
| Sized Integers | Integer types __int8, __int16, __int32, and __int64 are permitted. | Uses storage of the appropriate size for values of these types. |
By default, the armcc compiler model invokes armcc to extract its predefined macros.
Additional predefined macros and include paths are listed below.
| Include path | The include directory from the compiler installation location. That is, if the compiler executables are found in directory install_path\bin, the system include directory will be install_path\include | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Macros Defined |
The armcc compiler model
defines the following in addition to the standard CodeSonar
predefined macros.
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| Front End Options |
Always specified:
Depend on compilation mode: |
||||||||||||||||||||||||||||||||||||||||||||||||||
| Macros Conditionally Defined |
CPU-specific macros,
depending on the value specified with --cpu=value (if any):
|
To report problems with this documentation, please visit https://support.codesecure.com/.