Skip to main content

IAR Embedded Workbench for Arm 9.70.x

Summary of extended keywords

In this section:

This table summarizes the extended keywords:

Extended keyword

Description

__absolute

Makes references to the object use absolute addressing

__arm

Makes a function execute in Arm mode

__big_endian

Declares a variable to use the big-endian byte order

__cmse_nonsecure_call

Declares a function pointer to call non-secure code

__cmse_nonsecure_entry

Makes a function callable from a non-secure image

__exception

Declares a 64-bit mode exception function

__fiq

Declares a fast interrupt function

__interwork

Declares a function to be callable from both Arm and Thumb mode

__intrinsic

Reserved for compiler internal use only

__irq

Declares an interrupt function

__little_endian

Declares a variable to use the little-endian byte order

__naked

Declares a function without generating code to set up or tear down the function’s frame

__nested

Allows an __irq declared interrupt function to be nested, that is, interruptible by the same type of interrupt

__no_alloc, __no_alloc16

Makes a constant available in the execution file

__no_alloc_str, __no_alloc_str16

Makes a string literal available in the execution file

__no_init

Places a data object in the linker section .noinit

__noreturn

Informs the compiler that the function will not return

__packed

Decreases data type alignment to 1

__pcrel

Used internally by the compiler for constant data when the ‑‑ropi compiler option is used

__ramfunc

Makes a function execute in RAM

__root

Ensures that a function or variable is included in the object code even if unused

__ro_placement

Places constvolatile data in read-only memory.

__sbrel

Used internally by the compiler for constant data when the ‑‑rwpi compiler option is used

__stackless

Makes a function callable without a working stack

__svc

Declares a 32-bit mode software interrupt function or a 64-bit mode software exception function

__swi

Alias for __svc

__task

Relaxes the rules for preserving registers

__thumb

Makes a function execute in Thumb mode

__weak

Declares a symbol to be externally weakly linked

Table 101. Extended keywords summary