C/C++ Development Suite
Login
Introduction
Summary of changes from 5.54 to 5.55
Summary of changes up to 5.60
Summary of changes from 5.61 to 5.64
Halfword memory access
Packed structs
Inline assembler
C99 pragmas
Constant data
Global data controls
New/changed options

Downloads
Downloads Year 2

   

Global data controls

Some new command-line options have been added to tune the compiler's handling of global data. These options are equivalent to those added in ARM SDT 2.11.

-zz<ZI threshold size>
Sets the value of the zero-initialised data threshold size. The compiler will place uninitialised global variables in the Zero Initialised (ZI) data area if their size is greater than <ZI threshold size> bytes.

For example, you can force uninitialised global variables of any size to be placed in the ZI data area by specifying -zz0, though this may increase your code size. Alternatively you could use -zz100000000 to prevent any variables being placed in the ZI data area.

Use this option in combination with -zt to avoid increased code size. Option -zzt provides a convenient shorthand. The default threshold size is 8 bytes; this was 100 bytes in older versions of the compiler.

-zt
Disallows tentative declarations. If this option is specified the compiler assumes that any occurrence of a top level construct such as int i; is a definition without initialiser, rather than a tentative definition. Any subsequent definition with initialiser in the same scope will generate an error. This may fault code that conforms to the ISO standard.

This option is useful in combination with the -zz option.

-zzt<ZI threshold size>
Combines the -zt and -zz options. For example, specify -zzt0 to force the compiler to disallow tentative declarations and place all uninitialised global variables in the ZI data area.
For a more detailed explanation of the issues involved, see ARM's Application Note 36.

© 2003/2006 Castle Technology Ltd 32-bit RISC OS