Issue 28149: Incorrect indentation under “else” in _bsddb.c (original) (raw)
Compiling Python 2.7 gives:
/home/proj/python/cpython/Modules/_bsddb.c: In function ‘newDBObject’: /home/proj/python/cpython/Modules/_bsddb.c:936:5: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation] else ^~~~ /home/proj/python/cpython/Modules/_bsddb.c:938:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘else’ self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE; ^~~~
The code in question was changed a long time ago in revision defa1d825b08:
if (self->myenvobj)
self->getReturnsNone = self->myenvobj->getReturnsNone;
elseself->moduleFlags = self->myenvobj->moduleFlags;
self->getReturnsNone = GET_RETURNS_NONE_DEFAULT;
self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE;
self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE;
It looks like the solution is to group both statements with braces, but I don’t know this module, so I can’t be sure, and I don’t know how to test it.