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 eryksun
Recipients Ilya.Kulakov, alexei.romanov, amaury.forgeotdarc, belopolsky, eryksun, meador.inge, vinay.sajip, weeble
Date 2017-02-23.22:14:52
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1487888092.98.0.565348036965.issue22273@psf.upfronthosting.co.za>
In-reply-to
Content
Perhaps it should instead use two specific flags, TYPEFLAG_HASBITFIELD and TYPEFLAG_HASUNION, which are propagated unconditionally from the base class and fields. As a base case, a union itself is flagged TYPEFLAG_HASUNION. Arrays are unrolled on X86_64 only if neither flag is present and the size is 16 bytes or less.

If ConvParam or converters_from_argtypes see either flag on X86_64 and the size is 16 bytes or less, then they raise an exception. As before, this rejects some call signatures that would actually succeed. We're not accounting for the case in which the limited number of registers forces an argument to be passed on the stack even though it's small enough to be passed in registers.
History
Date User Action Args
2017-02-23 22:14:53eryksunsetrecipients: + eryksun, vinay.sajip, amaury.forgeotdarc, belopolsky, weeble, meador.inge, Ilya.Kulakov, alexei.romanov
2017-02-23 22:14:52eryksunsetmessageid: <1487888092.98.0.565348036965.issue22273@psf.upfronthosting.co.za>
2017-02-23 22:14:52eryksunlinkissue22273 messages
2017-02-23 22:14:52eryksuncreate