Skip to content

Commit

Permalink
Merge pull request #80156 from lawnjelly/dev_assert_note
Browse files Browse the repository at this point in the history
Usage notes for DEV_ASSERT macro
  • Loading branch information
YuriSizov committed Aug 2, 2023
2 parents 49305df + 85c3017 commit f415200
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions core/error/error_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -786,8 +786,19 @@ void _err_flush_stdout();
((void)0)

/**
* This should be a 'free' assert for program flow and should not be needed in any releases,
* only used in dev builds.
* Note: IN MOST CASES YOU SHOULD NOT USE THIS MACRO.
* Do not use unless you understand the trade-offs.
*
* DEV macros will be compiled out in releases, they are wrapped in DEV_ENABLED.
*
* Prefer WARNINGS / ERR_FAIL macros (which fail without crashing) - ERR_FAIL should be used in most cases.
* Then CRASH_NOW_MSG macros (on rare occasions where error cannot be recovered).
*
* DEV_ASSERT should generally only be used when both of the following conditions are met:
* 1) Bottleneck code where a check in release would be too expensive.
* 2) Situations where the check would fail obviously and straight away during the maintenance of the code
* (i.e. strict conditions that should be true no matter what)
* and that can't fail for other contributors once the code is finished and merged.
*/
#ifdef DEV_ENABLED
#define DEV_ASSERT(m_cond) \
Expand Down

0 comments on commit f415200

Please sign in to comment.