15.1.2.10 format_arg
(string-index)
The format_arg
attribute specifies that a function
takes printf
or scanf
style arguments, modifies it
(for example, to translate it into another language), and passes it to a
printf
or scanf
style function. For example,
consider the declaration:
extern char *
my_dgettext (char *my_domain, const char *my_format)
__attribute__ ((format_arg (2)));
This causes the compiler to check the arguments in calls to
my_dgettext
, whose result is passed to a printf
,
scanf
or strftime
type function for consistency
with the printf
style format string argument
my_format
.
The parameter string-index
specifies which
argument is the format string argument (starting from 1).
The format-arg
attribute allows you to identify your
own functions which modify format strings, so that the compiler can check the calls to
printf
, scanf
or strftime
function, whose operands are a call to one of your own functions.
interrupt [ ( [ save(list) ] [, irq(irqid) ]
[, altirq(altirqid)] [, preprologue(asm) ] ) ]
Use this option to indicate that the specified function is an interrupt
handler. The compiler will generate function prologue and epilogue sequences suitable
for use in an interrupt handler when this attribute is present. The optional parameter
save
specifies a list of variables to be saved and restored in the
function prologue and epilogue, respectively. The optional parameters
irq
and altirq
specify interrupt vector table IDs
to be used. The optional parameter preprologue
specifies assembly code
that is to be emitted before the compiler-generated prologue code. See Interrupts for a full
description, including examples.
When using the interrupt
attribute, please specify
either auto_psv
or no_auto_psv
. If none is specified a
warning will be produced and auto_psv
will be assumed.