bug.h 749 B

123456789101112131415161718192021222324
  1. #pragma once
  2. #include <common/compiler.h>
  3. #include <common/kprint.h>
  4. #pragma GCC push_options
  5. #pragma GCC optimize("O0")
  6. /**
  7. * @brief 当condition为true时输出警告信息
  8. *
  9. */
  10. #define WARN_ON(condition) ({ \
  11. int __ret_warn_on = !!(condition); \
  12. if (unlikely(__ret_warn_on)) \
  13. kwarn("Assertion failed at %s:%d", __FILE__, __LINE__); \
  14. unlikely(__ret_warn_on); \
  15. })
  16. #define FAIL_ON_TO(condition, to) ({ \
  17. int __ret_warn_on = !!(condition); \
  18. if (unlikely(__ret_warn_on)) \
  19. goto to; \
  20. unlikely(__ret_warn_on); \
  21. })
  22. #pragma GCC pop_options