23.7 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 XC16, MPLAB XC-DSC and MPLAB XC32 C compilers in compatibility mode. The table below shows the pragmas and the level of support when using each of these MPLAB XC C compilers.

Many of these pragmas take arguments. Even if a pragma is supported by an MPLAB XC C compiler, this support may not apply to all of the pragma’s arguments. This is indicated in the following table.

Table 23-7. Support for Non-Standard Pragmas
IAR Compatibility Mode
Pragma XC16 XC-DSC XC32
bitfields ignore ignore ignore
data_alignment support 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 support support support
message native support native support native support
object_attribute ignore ignore ignore
optimize native support native support native support
pack native support native support native support
__printf_args support support support
required support support support
rtmodel ignore ignore ignore
__scanf__args support support support
section support support support
segment support support support
swi_number ignore ignore ignore
type_attribute ignore ignore ignore
weak native support native support native support