23.5 Extended Keywords

Non-standard extensions often specify how objects are defined or accessed. Keywords are usually used to indicate the feature. The non-standard C keywords corresponding to other compilers are listed in the table below, as well as the level of compatibility offered by MPLAB XC compilers. The table notes offer more information about some extensions.

Table 23-5. Support for Non-Standard Keywords
IAR Compatibility Mode
KeywordXC16XC-DSCXC32
__section_beginsupportsupportsupport
__section_endsupportsupportsupport
__section_sizesupportsupportsupport
__segment_beginsupportsupportsupport
__segment_endsupportsupportsupport
__segment_sizesupportsupportsupport
__sfbsupportsupportsupport
__sfesupportsupportsupport
__sfssupportsupportsupport
__asm or asm1.native supportnative supportnative support
__armignoreignoreignore
__big_endianerrorerrorerror
__fiqerrorerrorerror
__intrinsicignoreignoreignore
__interworkignoreignoreignore
__irqerrorerrorerror
__little_endian2.ignoreignoreignore
__nestedignoreignoreignore
__no_initsupportsupportsupport
__noreturnsupportsupportsupport
__ramfuncignore4.ignore4.support3.
__packedsupportsupportsupport
__rootsupportsupportsupport
__swiignoreignoreignore
__tasksupportsupportsupport
__weaksupportsupportsupport
__thumbignoreignoreignore
__farfuncignoreignoreignore
__hugeignoreignoreignore
__nearfuncignoreignoreignore
__inlinenative supportnative supportnative support
  1. All assembly code specified by this construct is device-specific and will need review when porting to any Microchip device.
  2. This is the default (and only) endianism used by all MPLAB XC C compilers.
  3. When used with MPLAB XC32, this must be used with the __longcall__ macro for full compatibility.