Hi, Nine catch, could you submit a PR with the fix ?
Zoltan On Thu, Aug 17, 2017 at 4:54 PM, Neale Ferguson <ne...@sinenomine.net> wrote: > In threads.c we defined SpecialStaticOffset: > > > typedef union { > > struct { > > #if G_BYTE_ORDER != G_LITTLE_ENDIAN > > guint32 type : 1; > > guint32 offset : 25; > > guint32 index : 6; > > #else > > guint32 index : 6; > > guint32 offset : 25; > > guint32 type : 1; > > #endif > > } fields; > > guint32 raw; > > } SpecialStaticOffset; > > However, the MAKE_SPECIAL_STATIC_OFFSET macro assumes little endian: > > > #define MAKE_SPECIAL_STATIC_OFFSET(index, offset, type) \ > > ((SpecialStaticOffset) *{* .fields = *{* (type), (offset), > (index) } *}*.raw) > > > Therefore the offset value that was being returned was incorrect and we'd > choose the wrong bitset. To fix this: > > > #if G_BYTE_ORDER != G_LITTLE_ENDIAN > > #define MAKE_SPECIAL_STATIC_OFFSET(index, offset, type) \ > > ((SpecialStaticOffset) *{* .fields = *{* (type), (offset), > (index) } *}*.raw) > > #else > > #define MAKE_SPECIAL_STATIC_OFFSET(index, offset, type) \ > > ((SpecialStaticOffset) *{* .fields = *{* (index), (offset), > (type) } *}*.raw) > > #endif > > Making this change results in the failing (crashing) test - > generics-special2.2 - to work as it should. > > > Neale > > > _______________________________________________ > Mono-devel-list mailing list > Mono-devel-list@lists.dot.net > http://lists.dot.net/mailman/listinfo/mono-devel-list > >
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.dot.net http://lists.dot.net/mailman/listinfo/mono-devel-list