https://bugs.winehq.org/show_bug.cgi?id=47151
Bug ID: 47151 Summary: Assertion failure in widl when creating an interface that takes a type with bitfield members when a wire_marshal attribute is provided Product: Wine Version: 4.6 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: tools Assignee: wine-bugs@winehq.org Reporter: richard@torproject.org Distribution: ---
The following idl snippet compiles using midl but asserts in midl:
/* Begin */
struct flags { unsigned flag1 : 1; unsigned flag2 : 1; };
typedef [wire_marshal(char)] struct flags flags_t;
[ uuid(7a98c250-6808-11cf-b73b-00aa00b677a7), version(1.0), ] interface hello { void do_work([in] flags_t flags); }
/* End */
assertion: typegen.c:1963: type_memsize_and_alignment: Assertion `0' failed.
Presumably a check for a marshalling type with known alignment info needs to be added around here.