@@ -125,18 +125,21 @@ class Nested(Structure):
125125class Packed1 (Structure ):
126126 _fields_ = [('a' , c_int8 ), ('b' , c_int64 )]
127127 _pack_ = 1
128+ _layout_ = 'ms'
128129
129130
130131@register ()
131132class Packed2 (Structure ):
132133 _fields_ = [('a' , c_int8 ), ('b' , c_int64 )]
133134 _pack_ = 2
135+ _layout_ = 'ms'
134136
135137
136138@register ()
137139class Packed3 (Structure ):
138140 _fields_ = [('a' , c_int8 ), ('b' , c_int64 )]
139141 _pack_ = 4
142+ _layout_ = 'ms'
140143
141144
142145@register ()
@@ -155,6 +158,7 @@ def _maybe_skip():
155158
156159 _fields_ = [('a' , c_int8 ), ('b' , c_int64 )]
157160 _pack_ = 8
161+ _layout_ = 'ms'
158162
159163@register ()
160164class X86_32EdgeCase (Structure ):
@@ -366,6 +370,7 @@ class Example_gh_95496(Structure):
366370@register ()
367371class Example_gh_84039_bad (Structure ):
368372 _pack_ = 1
373+ _layout_ = 'ms'
369374 _fields_ = [("a0" , c_uint8 , 1 ),
370375 ("a1" , c_uint8 , 1 ),
371376 ("a2" , c_uint8 , 1 ),
@@ -380,6 +385,7 @@ class Example_gh_84039_bad(Structure):
380385@register ()
381386class Example_gh_84039_good_a (Structure ):
382387 _pack_ = 1
388+ _layout_ = 'ms'
383389 _fields_ = [("a0" , c_uint8 , 1 ),
384390 ("a1" , c_uint8 , 1 ),
385391 ("a2" , c_uint8 , 1 ),
@@ -392,13 +398,15 @@ class Example_gh_84039_good_a(Structure):
392398@register ()
393399class Example_gh_84039_good (Structure ):
394400 _pack_ = 1
401+ _layout_ = 'ms'
395402 _fields_ = [("a" , Example_gh_84039_good_a ),
396403 ("b0" , c_uint16 , 4 ),
397404 ("b1" , c_uint16 , 12 )]
398405
399406@register ()
400407class Example_gh_73939 (Structure ):
401408 _pack_ = 1
409+ _layout_ = 'ms'
402410 _fields_ = [("P" , c_uint16 ),
403411 ("L" , c_uint16 , 9 ),
404412 ("Pro" , c_uint16 , 1 ),
@@ -419,6 +427,7 @@ class Example_gh_86098(Structure):
419427@register ()
420428class Example_gh_86098_pack (Structure ):
421429 _pack_ = 1
430+ _layout_ = 'ms'
422431 _fields_ = [("a" , c_uint8 , 8 ),
423432 ("b" , c_uint8 , 8 ),
424433 ("c" , c_uint32 , 16 )]
@@ -528,7 +537,7 @@ def dump_ctype(tp, struct_or_union_tag='', variable_name='', semi=''):
528537 pushes .append (f'#pragma pack(push, { pack } )' )
529538 pops .append (f'#pragma pack(pop)' )
530539 layout = getattr (tp , '_layout_' , None )
531- if layout == 'ms' or pack :
540+ if layout == 'ms' :
532541 # The 'ms_struct' attribute only works on x86 and PowerPC
533542 requires .add (
534543 'defined(MS_WIN32) || ('
0 commit comments