Martin v. Löwis <mar...@v.loewis.de> added the comment: > Right, we currently avoid this problem by writing "assert(0)" for > example in lookdict_split in dictobject.c. What I'm saying is that > instead writing "assert(0)", we could use Py_UNREACHABLE.
I don't understand. The assert(0) is not there to silence any compiler warnings, is it? Instead, ISTM that it is there to truly assert that the code is not reached, which isn't actually obvious at all (IIUC, it's not reached because there must be some empty slot eventually unless the key is in there already). Instead, ISTM that is actually the "return 0;" that should silence the compiler warning about not having a return statement. If that's all true, I fail to see what __builtin_unreachable would achieve: we certainly have to preserve the return statement, for compilers not supporting such a declaration. Wouldn't this actually have the undesirable effect of complaining about the return statement when compiling with -Wunreachable-code? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14656> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com