compiler_attributes.h 843 B

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