|
|
The meaning of the value of a symbol depends on its storage class. This relationship is summarized in ``Storage class and value''.
Storage class and value
Storage Class | Meaning of Value | |
---|---|---|
C_AUTO | stack offset in bytes | |
C_EXT | relocatable address | |
C_STAT | relocatable address | |
C_REG | register number | |
C_LABEL | relocatable address | |
C_MOS | offset in bytes | |
C_ARG | stack offset in bytes | |
C_STRTAG | 0 | |
C_MOU | 0 | |
C_UNTAG | 0 | |
C_TPDEF | 0 | |
C_ENTAG | 0 | |
C_MOE | enumeration value | |
C_REGPARM | register number | |
C_FIELD | bit displacement | |
C_BLOCK | relocatable address | |
C_FCN | relocatable address | |
C_EOS | size | |
C_FILE | (see text below) | |
C_ALIAS | tag index | |
C_HIDDEN | relocatable address | |
C_WEAKEXT | relocatable address |
If a symbol has storage class C_FILE, the value of that symbol equals the symbol table entry index of the next .file symbol. That is, the .file entries form a one-way linked list in the symbol table. If there are no more .file entries in the symbol table, the value of the symbol is the index of the first global symbol.
Relocatable symbols have a value equal to the virtual address
of that symbol.
When the section is relocated by the link editor,
the value of these symbols changes.