This chapter describes the compiler-specific features:
Keywords and operators
__align
__alignof__
__ALIGNOF__
__asm
__forceinline
__global_reg
__inline
__int64
__INTADDR__
__irq
__packed
__pure
__smc
__softfp
__svc
__svc_indirect
__svc_indirect_r7
__value_in_regs
__weak
__writeonly
__declspec attributes
__declspec(dllexport)
__declspec(dllimport)
__declspec(noinline)
__declspec(noreturn)
__declspec(nothrow)
__declspec(notshared)
__declspec(thread)
Function attributes
__attribute__((alias)) function attribute
__attribute__((always_inline)) function attribute
__attribute__((const)) function attribute
__attribute__((constructor[(priority)])) function attribute
__attribute__((deprecated)) function attribute
__attribute__((destructor[(priority)])) function attribute
__attribute__((format_arg(string-index))) function attribute
__attribute__((malloc)) function attribute
__attribute__((noinline)) function attribute
__attribute__((no_instrument_function)) function attribute
__attribute__((nomerge)) function attribute
__attribute__((nonnull)) function attribute
__attribute__((noreturn)) function attribute
__attribute__((notailcall)) function attribute
__attribute__((pcs("calling_convention")))
__attribute__((pure)) function attribute
__attribute__((section("name"))) function attribute
__attribute__((unused)) function attribute
__attribute__((used)) function attribute
__attribute__((visibility("visibility_type"))) function attribute
__attribute__((weak)) function attribute
__attribute__((weakref("target"))) function attribute
Type attributes
__attribute__((bitband)) type attribute
__attribute__((aligned)) type attribute
__attribute((packed)) type attribute
__attribute__((transparent_union)) type attribute
Variable attributes
__attribute__((alias)) variable attribute
__attribute__((at(address))) variable attribute
__attribute__((aligned)) variable attribute
__attribute__((deprecated)) variable attribute
__attribute__((noinline)) constant variable attribute
__attribute__((packed)) variable attribute
__attribute__((section("name"))) variable attribute
__attribute__((transparent_union)) variable attribute
__attribute__((unused)) variable attribute
__attribute__((used)) variable attribute
__attribute__((visibility("visibility_type"))) variable attribute
__attribute__((weak)) variable attribute
__attribute__((weakref("target"))) variable attribute
__attribute__((zero_init)) variable attribute
Pragmas
#pragma anon_unions, #pragma no_anon_unions
#pragma arm
#pragma arm section [section_type_list]
#pragma diag_default tag[,tag,...]
#pragma diag_error tag[,tag,...]
#pragma diag_remark tag[,tag,...]
#pragma diag_suppress tag[,tag,...]
#pragma diag_warning tag[, tag, ...]
#pragma exceptions_unwind, #pragma no_exceptions_unwind
#pragma GCC system_header
#pragma hdrstop
#pragma import symbol_name
#pragma import(__use_full_stdio)
#pragma import(__use_smaller_memcpy)
#pragma inline, #pragma no_inline
#pragma no_pch
#pragma Onum
#pragma once
#pragma Ospace
#pragma Otime
#pragma pack(n)
#pragma pop
#pragma push
#pragma softfp_linkage, #pragma no_softfp_linkage
#pragma thumb
#pragma unroll [(n)]
#pragma unroll_completely
#pragma weak symbol, #pragma weak symbol1 = symbol2
Instruction intrinsics
__breakpoint intrinsic
__cdp intrinsic
__clrex intrinsic
__clz intrinsic
__current_pc intrinsic
__current_sp intrinsic
__disable_fiq intrinsic
__disable_irq intrinsic
__enable_fiq intrinsic
__enable_irq intrinsic
__fabs intrinsic
__fabsf intrinsic
__force_stores intrinsic
__ldrex intrinsic
__ldrexd intrinsic
__ldrt intrinsic
__memory_changed intrinsic
__nop
__pld intrinsic
__pldw intrinsic
__pli intrinsic
__promise intrinsic
__qadd intrinsic
__qdbl intrinsic
__qsub intrinsic
__rbit intrinsic
__rev intrinsic
__return_address intrinsic
__ror intrinsic
__schedule_barrier intrinsic
__semihost intrinsic
__sev intrinsic
__sqrt intrinsic
__sqrtf intrinsic
__ssat intrinsic
__strex intrinsic
__strexd intrinsic
__strt intrinsic
__swp intrinsic
__usat intrinsic
__wfe intrinsic
__wfi intrinsic
__yield intrinsic
ARMv6 SIMD intrinsics
ETSI basic operations
C55x intrinsics
VFP status intrinsic
__vfp_status intrinsic
Fused Multiply Add (FMA) intrinsics
Named register variables
GNU builtin functions
Compiler predefines.