PREV UP NEXT Using and Porting GNU CC

16.16.3: Output of Uninitialized Variables

Each of the macros in this section is used to do the whole job of outputting a single uninitialized variable.

ASM_OUTPUT_COMMON (stream, name, size, rounded)
A C statement (sans semicolon) to output to the stdio stream stream the assembler definition of a common-label named name whose size is size bytes. The variable rounded is the size rounded up to whatever alignment the caller wants.

Use the expression assemble_name (stream, name) to output the name itself; before and after that, output the additional assembler syntax for defining the name, and a newline.

This macro controls how the assembler definitions of uninitialized global variables are output.

ASM_OUTPUT_ALIGNED_COMMON (stream, name, size, alignment)
Like ASM_OUTPUT_COMMON except takes the required alignment as a separate, explicit argument. If you define this macro, it is used in place of ASM_OUTPUT_COMMON, and gives you more flexibility in handling the required alignment of the variable. The alignment is specified as the number of bits.
ASM_OUTPUT_SHARED_COMMON (stream, name, size, rounded)
If defined, it is similar to ASM_OUTPUT_COMMON, except that it is used when name is shared. If not defined, ASM_OUTPUT_COMMON will be used.
ASM_OUTPUT_LOCAL (stream, name, size, rounded)
A C statement (sans semicolon) to output to the stdio stream stream the assembler definition of a local-common-label named name whose size is size bytes. The variable rounded is the size rounded up to whatever alignment the caller wants.

Use the expression assemble_name (stream, name) to output the name itself; before and after that, output the additional assembler syntax for defining the name, and a newline.

This macro controls how the assembler definitions of uninitialized static variables are output.

ASM_OUTPUT_ALIGNED_LOCAL (stream, name, size, alignment)
Like ASM_OUTPUT_LOCAL except takes the required alignment as a separate, explicit argument. If you define this macro, it is used in place of ASM_OUTPUT_LOCAL, and gives you more flexibility in handling the required alignment of the variable. The alignment is specified as the number of bits.
ASM_OUTPUT_SHARED_LOCAL (stream, name, size, rounded)
If defined, it is similar to ASM_OUTPUT_LOCAL, except that it is used when name is shared. If not defined, ASM_OUTPUT_LOCAL will be used.