This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author martin.panter
Recipients gregory.p.smith, martin.panter
Date 2016-09-14.12:36:47
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1473856607.19.0.0525868004133.issue28149@psf.upfronthosting.co.za>
In-reply-to
Content
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;
+        self->moduleFlags = self->myenvobj->moduleFlags;
     else
-        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.
History
Date User Action Args
2016-09-14 12:36:47martin.pantersetrecipients: + martin.panter, gregory.p.smith
2016-09-14 12:36:47martin.pantersetmessageid: <1473856607.19.0.0525868004133.issue28149@psf.upfronthosting.co.za>
2016-09-14 12:36:47martin.panterlinkissue28149 messages
2016-09-14 12:36:47martin.pantercreate