Martin Panter added the comment:

Michael, byref() is just a helper for passing an object’s address to a C 
function. Calling func(byref(b), ...) in Python is equivalent to the C code

unpack_bitfields(&b, ...)

I still think the root problem is in unpack_bitfields(). When compiled with 
XLC, your experiments confirm that it always returns unsigned values, and with 
GCC, it returns signed values.

It looks like you can detect XLC with the __IBMC__ and __xlC__ macros (not sure 
if there is a practical difference). So perhaps we can fix this with

#ifndef __xlC__

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27643>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to