On Sun, May 26, 2013 at 10:26:48AM -0500, mdroth wrote: > On Sun, May 26, 2013 at 12:00:57PM +0000, Blue Swirl wrote: > > I get this on i386 chroot for make check: > > > > GTESTER tests/test-qmp-output-visitor > > ** > > ERROR:/src/qemu/tests/test-qmp-output-visitor.c:595:check_native_list: > > assertion failed: (tmp) > > GTester: last random seed: R02S559792e7c8d0762d9a2ee153fba8896c > > ** > > Tests case looks correct, problem seems to be that we cast list node to > GenericList, which expects the 'value' field to be a pointer type. With > native lists types these are in some cases non-pointer types, like > intList, where 'value' is an int64_t. On 32-bit archs this cast leads to > use uses incorrect offset when trying to traverse the list. > > Don't see a way to fix this outside of making the code generators do > a bit of massaging for these cases rather than a cast. Looking at it > now, but might not be able to send a patch till later.
Patch sent: http://article.gmane.org/gmane.comp.emulators.qemu/213202 Teaching code generators to be smarter didn't work out so well since visitor implementations allocate storage of list types based on GenericList, so ended up relying on padding to 64-bit instead.