Refactor assert usage.
Open
@SchrodingerZhu is already working on this.
Since Jun 17, 2021.
- Dominant language
- C++
- Stars
- 1k
- Forks
- 423
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 24
Description
We should probably define:
DBMS_ASSUME: (used in logic code)
#ifndef NDEBUG
# define DBMS_ASSUME(x) DBMS_ASSERT(x)
#else
# if __has_builtin(__builtin_assume)
# define DBMS_ASSUME(x) __builtin_assume((x))
# elif defined(_MSC_VER)
# define DBMS_ASSUME(x) __assume((x));
# elif defined(__GNUC__)
# define DBMS_ASSUME(x) \
if (!(x)) \
__builtin_unreachable();
# else
# define DBMS_ASSUME(x) \
do \
{ \
} while (0)
# endif
#endif
DBMS_ASSERT: (used in test code) debug time assert, release time abort
As what we have encountered in #2194, directly usage of assert may cause subtle warnings and it loses the effect in release build.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.