1*2813126eSlogin #pragma once 2*2813126eSlogin #include <common/stddef.h> 3*2813126eSlogin 4*2813126eSlogin // 当函数的返回值未被使用时,编译器抛出警告信息 5*2813126eSlogin #define __must_check __attribute__((__warn_unused_result__)) 6*2813126eSlogin #define __force __attribute__((force)) 7*2813126eSlogin // 无返回值的属性 8*2813126eSlogin #define __noreturn __attribute__((__noreturn__)) 9*2813126eSlogin /* 10*2813126eSlogin * Optional: only supported since clang >= 14.0 11*2813126eSlogin * 12*2813126eSlogin * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-error-function-attribute 13*2813126eSlogin */ 14*2813126eSlogin #if __has_attribute(__error__) 15*2813126eSlogin #define __compiletime_error(msg) __attribute__((__error__(msg))) 16*2813126eSlogin #else 17*2813126eSlogin #define __compiletime_error(msg) 18*2813126eSlogin #endif 19*2813126eSlogin 20*2813126eSlogin typedef uint8_t __attribute__((__may_alias__)) __u8_alias_t; 21*2813126eSlogin typedef uint16_t __attribute__((__may_alias__)) __u16_alias_t; 22*2813126eSlogin typedef uint32_t __attribute__((__may_alias__)) __u32_alias_t; 23*2813126eSlogin typedef uint64_t __attribute__((__may_alias__)) __u64_alias_t;