| |||
| Home > C and C++ Compiler Errors and Warnings > List of the old-style armcc error and warning messages | |||
The following old-style error and warning messages might still be given:
SWI number 0x<num> too large
illegal unaligned load or store access - use __packed instead
splitting LDM/STM has no benefit
Inappropriate use of the switch "--split_ldm".
This option has no significant benefit for cached systems, or for
processors with a write buffer.
unsupported CPU <entity>
Unbalanced pragma pop, ignored
#pragma push and #pragma pop save
and restore the current pragma state.
A pop must be paired with a push. An error is given for:
#pragma push
:
#pragma pop
:
#pragma pop
unknown option '-<entity><entity>': ignored
<entity> may be used before being set
The data flow analysis feature in the compiler is on by default.
Be aware that data flow analysis is always disabled at -O0 .
The compiler performs data flow analysis as part of its optimization process, and this information can be used to identify potential problems in the code such as variables being used before being set. However, this is really a by-product of optimization rather than a feature in its own right. The data flow analysis that detects used before being set only analyses hardware register use, that is, variables that are held in processor registers. It does not analyze variables or structures that are allocated on the stack, that is, stored in memory rather than in processor registers.
As code (and also register memory usage) generated by the
compiler varies with the level of optimization, the warning might
appear for code compiled at one level of optimization but not others.
You might see it, for example, at -O2, but not -O1.
The data flow analysis is not intended to be a fully complete
feature. You must only treat the warnings of the form C given
by the compiler as a guide, and not rely on these warnings to identify
faulty code reliably. The compiler never provides as much information
as a special purpose tool such as Lint.nnnnW
division by zero: <entity>
Constant propagation shows that a divide or remainder operator has a second operand with value 0. It is an error if execution reaches this expression. The compiler returns a result of 0 for a divide by constant 0.
Function too large or complicated to compile (0x<num>)
I/O error writing '<entity>': <entity>
Too many errors
out of store while compiling with -g. Allocation size was <entity>, system size is <entity>
out of store. Allocation size was <entity>, system size is <entity>
A storage allocation request by the compiler failed. Compilation
of the debugging tables requested with the -g option
might require a large amount of memory. Recompiling without -g,
or with the program split into smaller pieces, might help.
Compilation aborted.
couldn't write file '<entity>': <entity>
couldn't read file '<entity>': <entity>
internal fault in inferFileName
bad option '<s>'
bad option '<s1> <s2>'
Overlong filename: <entity>
type of input file '<entity>' unknown
The code space needed for this object is too large for this version of the compiler
Split the source file into smaller pieces.
Can't open <entity> for output
stdin ('-') combined with other files
<entity> command with no effect
configuration file appears to be from a newer version of the compiler
The configuration file is one of the XML files supplied to
the compiler with the --arm_linux_config_file switches
when using --arm_linux_paths or GCC command-line
translation. For example:
armcc --arm_linux_paths --arm_linux_config_file=arm_linux_config.xml
This warning indicates the file is from a newer compiler so might contain unsupported features. To avoid incompatibilites, either use the newer version of the compiler that was used to generate the configuration file, or re-generate the configuration file using your current compiler version.
See the following in the Compiler Reference:
configuration file has an invalid version string
This represents an error reading from or writing to an ARM Linux configuration file.
Do the following:
Check that the file can be read from and written to and has valid permissions.
Try re-generating the configuration file using --arm_linux_configure.
See the following in the Compiler Reference:
configuration file was not specified
See the description for error C3302E.
I/O error reading configuration file <file>
See the description for error C3302E.
I/O error writing configuration file <file>
See the description for error C3302E.
could not parse configuration file <file>
See the description for error C3302E.
unable to read configuration file
See the description for error C3302E.
cannot find system include directory
When using an ARM Linux mode, --arm_linux, --arm_linux_paths,
or GCC command-line translation, set the ARMCC environment
variable to nnINC.
This ensures that the compiler can find the install_directory\includearm_linux header
subdirectory.
See the following in the Compiler Reference:
See the following in Introducing the ARM® Compiler toolchain:
automatic configuration failed - cannot find GCC
This error is produced when you try to automatically configure
the tools with --arm_linux_configure, but GCC cannot
be found. Use the --configure_gcc= command
-line option to specify the path to the GCC executable, such as arm-none-linux-gnueabi-gcc.path_to_gcc
See the following in the Compiler Reference:
automatic configuration is incomplete - cannot determine sysroot path from GCC
The GCC that was used for the ARM Linux configuration process
did not provide a valid sysroot path. Use --configure_sysroot=sysroot_path to
set the path.
See the following in the Compiler Reference:
automatic configuration failed - cannot find GLD
This error is produced when you try to automatically configure
the tools with --arm_linux_configure, but the GNU
linker (ld) could not be found. Use the --configure_gkd= command-line
option to specify the path to the GNU ld executable, such as arm-none-linux-gnueabi-ld.path_to_gcc
See the following in the Compiler Reference:
automatic configuration failed - could not execute GCC
This error indicates that, when using automatic configuration
for ARM Linux with --arm_linux_configure, the respective
tools (GCC or GNU ld) could not be executed or failed when invoked.
Check that they have execute permissions, and your GNU toolchain
installation is working correctly.
See the following in the Compiler Reference:
automatic configuration failed - could not execute GLD
See the description of error C3312E.
gcc command line translation - ignoring option with no translation: <option>
gcc command line translation - translation for this command is not fully supported: <option>
option is not supported under arm linux: <option>
translated cpu or architecture option <option> is not valid
unable to read file <file>
cannot recognise type of file <file> - file will be ignored
cannot find file <file> - file will be ignored
automatic configuration failed - could not determine configuration from GCC
When configuring automatically for ARM Linux with --arm_linux_configure,
the compiler could not determine sufficient information from GCC
to produce the configuration. Try a manual configuration by specifying
a sysroot path with --configure_sysroot and
a path to the GNU C++ header files with --configure_cpp_headers.
See the following in the Compiler Reference:
could not accurately determine library configuration from GCC - configuration might be incomplete
automatic configuration failed - GCC internal specs configuration report error: <text>
could not determine libstdc++ header file path - specify this manually to ensure that C++ code will compile correctly
The path to the libstdc++ header files could not be determined
from GCC. Specify this path with --configure_cpp_headers=path
See the following in the Compiler Reference:
cannot determine application entry point function - using <value> as default
cannot determine library paths from GNU linker - trying to use defaults
option is missing an argument : <option>
GCC configuration is invalid
script file <file> will be treated as a scatter file
I/O error reading via file <file>
I/O error closing via file <file>
invalid GCC version in configuration file - using default
cannot retry because configuration file does not provide path to GNU executable
Displayed when the ARM Linux configuration file specified for GCC fallback does not include the correct path to gcc.
See the following in Using the Compiler:
See the following in the Compiler Reference:
compilation failed - retrying with GNU tools
Displayed if an armcc compilation fails and GCC fallback is specified. armcc then attempts to run gcc to complete the compilation.
See the following in Using the Compiler:
See the following in the Compiler Reference:
compilation with GNU tools also failed
Displayed if gcc fails during GCC fallback.
See the following in Using the Compiler:
See the following in the Compiler Reference:
compilation with GNU tools succeeded
Displayed when GCC fallback succeeds.
See the following in Using the Compiler:
See the following in the Compiler Reference:
ambiguous translation mode options specified - using <option>
Multiple translation mode options --translate_gcc, --translate_g++,
and --translate_gld were specified. You must specify
only one of these options to select a particular translation mode.
See the following in the Compiler Reference:
could not obtain license for vectorization (implied by -O3) - defaulting to -fno-tree-vectorize
With GCC command-line translation, -O3 implies
vectorization. However, this requires a license to use the NEON
vectorization feature of the compiler. Where a NEON vectorization
license is not available, the compiler emits warning C3340W and
disables vectorization.
See the following in Introducing the ARM Compiler toolchain:
See the following in the Compiler Reference:
__alloca_state not defined
dynamic stack alignment veneer inserted in <entity>
This warning is given when compiling __irq functions
for --cpu=Cortex-M3-rev0 to force the stack to
be 8-byte aligned on entry into the interrupt.
write to string literal
There is a write through a pointer that has been assigned to point at a literal string. The behavior is undefined by to the ANSI standard. A subsequent read from the location written might not reflect the write.
reference to <entity> not allowed
option '-E' and input file '<filename>' type conflict
Minimum toplevel array alignment must be 1, 2, 4 or 8
option '-<optionchar>' causes input file '<filename>' to be ignored
read from variable '<var>' with offset out of bounds
For example :
void foo(void) {
unsigned int pntr;
pntr = (unsigned int)&pntr;
pntr -= 4;
pntr = *(unsigned int*)pntr;
}
write to variable '<var>' with offset out of bounds
__vfp_status() intrinsic not supported for targets without VFP
instruction set switching using file extension is deprecated
Function alignment must be a power of 2 and greater than 1
invalid global register number <num>; 1 to <num> allowed
invalid syntax for retention constraint: <text>
option conflicts with an arm linux targeting option: <option>
Certain options are expected to be used when targeting ARM Linux, for example to select the correct ABI variant options. This message is given to indicate when an incompatible option is specified.
See the following in the Compiler Reference: