# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 174
- 175
- 176
- 177
- 178
…
- 365
- 366

MPLAB
®
XC16 C Compiler Users Guide
DS50002071C-page 176  2012-2013 Microchip Technology Inc.
13.2.2 Function Attributes
The keyword __attribute__ allows you to specify special attributes when making a
declaration. This keyword is followed by an attribute specification inside double
parentheses. The following attributes are currently supported for functions:
 address (addr)
 alias ("target")
 auto_psv, no_auto_psv
 boot
 const
 deprecated
 far
 format (archetype, string-index, first-to-check)
 format_arg (string-index)
 interrupt [ ( [ save(list) ] [, irq(irqid) ] [,
altirq(altirqid)] [, preprologue(asm) ] ) ]
 keep
 naked
 near
 no_instrument_function
 noload
 noreturn
 round(mode)
 save(list)
 section ("section-name")
 secure
 shadow
 unsupported("message")
 unused
 user_init
 weak
You may also specify attributes with __ (double underscore) preceding and following
each keyword (e.g., __shadow__ instead of shadow). This allows you to use them in
header files without being concerned about a possible macro of the same name.
Multiple attributes may be specified in a declaration by separating them by commas
within the double parentheses or by immediately following an attribute declaration with
another attribute declaration.

- 1
- 2
…
- 174
- 175
- 176
- 177
- 178
…
- 365
- 366