LUFA Library  140928
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Attributes.h File Reference

Special function/variable attribute macros. More...


#define ATTR_ALIAS(Func)   __attribute__ ((alias( #Func )))
#define ATTR_ALIGNED(Bytes)   __attribute__ ((aligned(Bytes)))
#define ATTR_ALWAYS_INLINE   __attribute__ ((always_inline))
#define ATTR_CONST   __attribute__ ((const))
#define ATTR_DEPRECATED   __attribute__ ((deprecated))
#define ATTR_INIT_SECTION(SectionIndex)   __attribute__ ((used, naked, section (".init" #SectionIndex )))
#define ATTR_NAKED   __attribute__ ((naked))
#define ATTR_NO_INIT   __attribute__ ((section (".noinit")))
#define ATTR_NO_INLINE   __attribute__ ((noinline))
#define ATTR_NO_RETURN   __attribute__ ((noreturn))
#define ATTR_NON_NULL_PTR_ARG(...)   __attribute__ ((nonnull (__VA_ARGS__)))
#define ATTR_PACKED   __attribute__ ((packed))
#define ATTR_PURE   __attribute__ ((pure))
#define ATTR_WARN_UNUSED_RESULT   __attribute__ ((warn_unused_result))
#define ATTR_WEAK   __attribute__ ((weak))

Detailed Description

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.

Do not include this file directly, rather include the Common.h header file instead to gain this file's functionality.