# Vault 7: Projects

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

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 241
- 242
- 243
- 244
- 245
…
- 365
- 366

Embedded Compiler Compatibility Mode
 2012-2013 Microchip Technology Inc. DS50002071C-page 243
MPLAB XC8, so there is no loss of functionality.
B.7 INTRINSIC FUNCTIONS
Intrinsic functions can be used to perform common tasks in the source code. The
MPLAB XC compilers support for the intrinsic functions offered by other compilers is
shown in Table B-6.
Note 1: These intrinsic functions map to macros which disable or enable the global interrupt
enable bit on 8-bit PIC
®
devices.
The header file <xc.h> must be included for supported functions to operate correctly.
B.8 PRAGMAS
Pragmas may be used by a compiler to control code generation. Any compiler will
ignore an unknown pragma, but many pragmas implemented by another compiler have
also been implemented by the MPLAB XC compilers in compatibility mode. Table B-7
shows the pragmas and the level of support when using each of the MPLAB XC com-
pilers.
Many of these pragmas take arguments. Even if a pragma is supported by an MPLAB
XC compiler, this support may not apply to all of the pragmas arguments. This is indi-
cated in the table.
TABLE B-6: SUPPORT FOR NON-STANDARD INTRINSIC FUNCTIONS
IAR Compatibility Mode
Function XC8 XC16 XC32
__disable_fiq
1
support ignore ignore
__disable_interrupt support support support
__disable_irq
1
support ignore ignore
__enable_fiq
1
support ignore ignore
__enable_interrupt support support support
__enable_irq
1
support ignore ignore
__get_interrupt_state ignore support support
__set_interrupt_state ignore support support
TABLE B-7: SUPPORT FOR NON-STANDARD PRAGMAS
IAR Compatibility Mode
Pragma XC8 XC16 XC32
bitfields ignore ignore ignore
data_alignment ignore support support
diag_default ignore ignore ignore
diag_error ignore ignore ignore
diag_remark ignore ignore ignore
diag_suppress ignore ignore ignore
diag_warning ignore ignore ignore
include_alias ignore ignore ignore
inline support (no args) support (no args) support (no args)
language ignore ignore ignore
location ignore support support
message support native support native support

- 1
- 2
…
- 241
- 242
- 243
- 244
- 245
…
- 365
- 366