LUFA Library
120219
|
Special function/variable attribute macros. More...
Defines | |
#define | ATTR_NO_RETURN __attribute__ ((noreturn)) |
#define | ATTR_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) |
#define | ATTR_NON_NULL_PTR_ARG(...) __attribute__ ((nonnull (__VA_ARGS__))) |
#define | ATTR_NAKED __attribute__ ((naked)) |
#define | ATTR_NO_INLINE __attribute__ ((noinline)) |
#define | ATTR_ALWAYS_INLINE __attribute__ ((always_inline)) |
#define | ATTR_PURE __attribute__ ((pure)) |
#define | ATTR_CONST __attribute__ ((const)) |
#define | ATTR_DEPRECATED __attribute__ ((deprecated)) |
#define | ATTR_WEAK __attribute__ ((weak)) |
#define | ATTR_NO_INIT __attribute__ ((section (".noinit"))) |
#define | ATTR_INIT_SECTION(SectionIndex) __attribute__ ((used, naked, section (".init" #SectionIndex ))) |
#define | ATTR_ALIAS(Func) __attribute__ ((alias( #Func ))) |
#define | ATTR_PACKED __attribute__ ((packed)) |
#define | ATTR_ALIGNED(Bytes) __attribute__ ((aligned(Bytes))) |
This module contains macros for applying specific attributes to functions and variables to control various optimizer and code generation features of the compiler. Attributes may be placed in the function prototype or variable declaration in any order, and multiple attributes can be specified for a single item via a space separated list.
On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are critical to the code's function and thus must throw a compile error when used.