compiler_attributes.h 816 B

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