9.10.16 reverse
(alignment)
The reverse
attribute specifies a minimum alignment for
the ending address of a variable, plus one. The alignment is specified in bytes and must
be a power of two. Reverse-aligned variables can be used for decrementing modulo buffers
in dsPIC DSC assembly language. This attribute could be useful if an application defines
variables in C that will be accessed from assembly language.
int buf1[128] __attribute__ ((reverse(256)));
The reverse
attribute conflicts with the
aligned
and section
attributes. An attempt to name
a section for a reverse-aligned variable will be ignored with a warning. It is an error
condition to specify both reverse
and aligned
for the
same variable. A variable with the reverse
attribute cannot be placed
into the auto_psv
space (see the space()
attribute or
the -mconst-in-code
option); attempts to do so will cause a warning and
the compiler will place the variable into the PSV space.