- Notifications
You must be signed in to change notification settings - Fork30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
bpo-31338#3374
bpo-31338#3374
Conversation
Over inhttp://bugs.python.org/issue31338 the idea to implement a macro calledPy_UNREACHABLE()
was proposed. This would be used in cases where you'd be tempted to use anassert(0)
orabort()
, i.e. for code paths you do not expect will ever be reached.
UsingPy_UNREACHABLE()
has a few advantages:
- Consistency; it's easy to search for such code paths;
- The intent is clear;
- Being a macro, we adjust this on a per-compiler basis in case we need to make it more friendly (although the default implementation makes gcc, clang, and MSVC happy).
- We can define it differently for other use cases, such as adding a common debugging entry point, or printing
__FILE__
and__LINE__
, etc.
I've changed the examples described inbpo-31338, but may not have gotten them all.
For now, this is defined strictly asabort()
which is the simplest thing that make the common compilers happy.
I've also added some documentation aboutPy_UNREACHABLE()
and a few other macros inpymacros.h
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM.
Thanks@Haypo ! |
The |