Author barry
Recipients barry, serhiy.storchaka, skrah
Date 2017-09-04.19:18:14
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1504552694.13.0.420212301121.issue31338@psf.upfronthosting.co.za>
In-reply-to
Content
Over in bpo-31337 the observation was made that we often use the following pattern in situations we never expect to hit:

assert(0);
return NULL;

but this isn't strictly optimal.  First, the asserts can be compiled away.  Second, it's possible that our assumptions about a particular condition are incorrect.  Third, the intent of non-reachability isn't as clear as it could be.

As suggested in http://bugs.python.org/issue31337#msg301229 it would be better to use

abort() /* NOT REACHED */

instead (although @skrah says "The only drawback is that in the case of libraries, sometimes distribution package lint tools complain." so it would be useful to understand that in more detail.

@serhiy.storchaka says "I have counted 48 occurrences of assert(0), 11 assert(0 && "message") and 2 assert(!"message"). If fix one occurrence, why not fix all others?"  We should!  This issue tracks that.
History
Date User Action Args
2017-09-04 19:18:14barrysetrecipients: + barry, skrah, serhiy.storchaka
2017-09-04 19:18:14barrysetmessageid: <1504552694.13.0.420212301121.issue31338@psf.upfronthosting.co.za>
2017-09-04 19:18:14barrylinkissue31338 messages
2017-09-04 19:18:14barrycreate