This file contains compiler related definitions. More...
Macros | |
#define | inline |
#define | SASI_PAL_COMPILER_SECTION(sectionName) __attribute__((section(sectionName))) |
#define | SASI_PAL_COMPILER_KEEP_SYMBOL __attribute__((used)) |
#define | SASI_PAL_COMPILER_ALIGN(alignement) __attribute__((aligned(alignement))) |
#define | SASI_PAL_COMPILER_FUNC_NEVER_RETURNS __attribute__((noreturn)) |
#define | SASI_PAL_COMPILER_FUNC_DONT_INLINE __attribute__((noinline)) |
#define | SASI_PAL_COMPILER_TYPE_MAY_ALIAS __attribute__((__may_alias__)) |
#define | SASI_PAL_COMPILER_SIZEOF_STRUCT_MEMBER(type_name, member_name) sizeof(((type_name *)0)->member_name) |
#define | SASI_ASSERT_CONCAT_(a, b) a##b |
#define | SASI_ASSERT_CONCAT(a, b) SASI_ASSERT_CONCAT_(a, b) |
#define | SASI_PAL_COMPILER_ASSERT(cond, message) enum { SASI_ASSERT_CONCAT(assert_line_, __LINE__) = 1/(!!(cond)) } |
This file contains compiler related definitions.
#define SASI_ASSERT_CONCAT_ | ( | a, | |
b | |||
) | a##b |
Assertion.
#define SASI_PAL_COMPILER_ALIGN | ( | alignement | ) | __attribute__((aligned(alignement))) |
Make given data item aligned (alignment in bytes).
#define SASI_PAL_COMPILER_FUNC_DONT_INLINE __attribute__((noinline)) |
Prevent function from being inlined.
#define SASI_PAL_COMPILER_FUNC_NEVER_RETURNS __attribute__((noreturn)) |
Mark function that never returns.
#define SASI_PAL_COMPILER_KEEP_SYMBOL __attribute__((used)) |
Mark symbol as used, i.e., prevent garbage collector from dropping it.
#define SASI_PAL_COMPILER_SECTION | ( | sectionName | ) | __attribute__((section(sectionName))) |
Associate a symbol with a link section.
#define SASI_PAL_COMPILER_SIZEOF_STRUCT_MEMBER | ( | type_name, | |
member_name | |||
) | sizeof(((type_name *)0)->member_name) |
Get sizeof for a structure type member.
#define SASI_PAL_COMPILER_TYPE_MAY_ALIAS __attribute__((__may_alias__)) |
Given data type may cast (alias) another data type pointer.