On Friday 09 December 2005 20:21, Robert Shearman wrote:
(note: I see no problem with this patch)
print_server("*(("); write_type(server, def->type, def, def->tname); - fprintf(server, " __RPC_FAR *)_StubMsg.Buffer)++ = _RetVal;\n"); + fprintf(server, " *)_StubMsg.Buffer)++ = _RetVal;\n");
I remember sending a patch for the MIDL generated oleaut32/oaidl_p.c to remove all these lvalue casts that had become illegal with the arrival of gcc4 ("invalid lvalue in assignment"). To avoid these in widl the code could read something like this:
print_server("*("); write_type(server, def->type, def, def->tname); fprintf(server, " *)_StubMsg.Buffer = _RetVal;\n"); fprintf(server, "_StubMsg.Buffer += sizeof("); write_type(server, def->type, def, def->tname); fprintf(server, ");\n");
I don't have my repository at hand now but I can send a patch this weekend.
-Hans