On Mon, Jul 10, 2017 at 12:01:02PM +0100, Huw Davies wrote:
On Mon, Jul 10, 2017 at 10:11:42AM +0000, Alistair Leslie-Hughes wrote:
Fixes: https://bugs.winehq.org/show_bug.cgi?id=43302 diff --git a/tools/widl/header.c b/tools/widl/header.c index 7b971582db..e48b488ae3 100644 --- a/tools/widl/header.c +++ b/tools/widl/header.c @@ -1172,7 +1172,7 @@ static void write_method_proto(FILE *header, const type_t *iface) { const var_t *func = stmt->u.var;
- if (!is_local(func->attrs)) {
- if (is_callas(func->attrs)) { const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); if (!callconv) callconv = "STDMETHODCALLTYPE"; /* proxy prototype */
On further testing with midl v7, /Os does emit Proxy/Stub prototypes for all functions. Since widl essentially runs in this mode, I'd prefer to keep this behaviour if possible.
In the bug you mention redefinition errors in qmgrprxy. How are you getting these?
It sounds like AJ is happy to go with this, but there's a build error:
make[1]: Entering directory 'dlls/windowscodecs/tests' gcc -m32 -c -o converter.o converter.c -I. -I../../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe \ -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \ -Wstrict-prototypes -Wtype-limits -Wvla -Wwrite-strings -Wpointer-arith -fno-omit-frame-pointer \ -Wno-deprecated-declarations -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
converter.c:711:30: warning: implicit declaration of function 'IWICBitmapFrameEncode_WriteSource_Proxy' is invalid in C99 [-Wimplicit-function-declaration]
You'll need to add the prototype to coverter.c .
Huw.