--strict_preserve8_require8
Enables the generation of the armlink diagnostic L6238E
when a function that is not tagged as preserving eight-byte alignment of the stack calls a function that is tagged as requiring eight-byte alignment of the stack.
Note
This option controls only the instances of errorL6283E
that relate to the preserve eight-byte stack alignment and
require eight-byte stack alignment relationship, not any other instances of that
error.When a function is known to preserve eight-byte alignment of the stack,
armclang assigns the build attribute Tag_ABI_align_preserved
to that function. However, the
armclang integrated assembler does not
automatically assign this attribute to assembly code.
By default, armlink does not check
for the build attribute Tag_ABI_align_preserved
. Therefore, when
you specify --strict_preserve8_require8
, and armlink generates error L6238E
, then
you must check that your assembly code preserves eight-byte stack alignment. If it
does, then add the following directive to your assembly code:
.eabi_attribute Tag_ABI_align_preserved, 1