Line 41... |
Line 41... |
R_foo_good,
|
R_foo_good,
|
R_foo_illegal = 9,
|
R_foo_illegal = 9,
|
R_foo_count
|
R_foo_count
|
};
|
};
|
|
|
|
Note: The value of the symbol defined in the END_RELOC_NUMBERS
|
|
macro (R_foo_count in the case of the example above) will be
|
|
set to the value of the whichever *_RELOC macro preceeds it plus
|
|
one. Therefore if you intend to use the symbol as a sentinel for
|
|
the highest valid macro value you should make sure that the
|
|
preceeding *_RELOC macro is the highest valid number. ie a
|
|
declaration like this:
|
|
|
|
START_RELOC_NUMBERS (foo)
|
|
RELOC_NUMBER (R_foo_NONE, 0)
|
|
RELOC_NUMBER (R_foo_32, 1)
|
|
FAKE_RELOC (R_foo_illegal, 9)
|
|
FAKE_RELOC (R_foo_synonym, 0)
|
|
END_RELOC_NUMBERS (R_foo_count)
|
|
|
|
will result in R_foo_count having a value of 1 (R_foo_synonym + 1)
|
|
rather than 10 or 2 as might be expected.
|
|
|
|
Alternatively you can assign a value to END_RELOC_NUMBERS symbol
|
|
explicitly, like this:
|
|
|
|
START_RELOC_NUMBERS (foo)
|
|
RELOC_NUMBER (R_foo_NONE, 0)
|
|
RELOC_NUMBER (R_foo_32, 1)
|
|
FAKE_RELOC (R_foo_illegal, 9)
|
|
FAKE_RELOC (R_foo_synonym, 0)
|
|
END_RELOC_NUMBERS (R_foo_count = 2)
|
|
|
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
|
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
|
following function will be generated:
|
following function will be generated:
|
|
|
static const char *foo (unsigned long rtype);
|
static const char *foo (unsigned long rtype);
|
static const char *
|
static const char *
|