wine-wine/tools/widl
Henri Verbeet b42a15513e widl: Handle C++ aggregate returns in a MSVC compatible way.
This mainly affects 64-bit winelib applications, and potentially mingw-w64
usage of the Wine headers. As explained in commit
fabfa59aea, MSVC returns aggregates through an
implicit parameter immediately after the this/interface pointer. GCC's
"ms_abi" attribute is supposed to match this, but unfortunately current
versions of g++ (confirmed up to at least g++ 6.3) place the implicit return
pointer before the this/interface pointer. See also
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52792.

This commit takes an approach similar to the earlier commit
fabfa59aea5c5b3201142382038beb3e76cb7567: For ABI compatibility the return
pointer is listed as an explicit parameter in the vtbl entry, while an inline
helper is provided for source code compatibility.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:30 +02:00
..
Makefile.in makefiles: Generate dependencies for static libraries. 2016-02-23 19:38:37 +09:00
client.c
expr.c widl: Fix overflow when left-shifting. 2016-06-23 22:56:58 +09:00
expr.h
hash.c Use the official Microsoft definitions for Gaelic languages. 2013-06-19 20:09:51 +02:00
hash.h
header.c widl: Handle C++ aggregate returns in a MSVC compatible way. 2017-07-24 18:58:30 +02:00
header.h widl: Added support for namespaced enums. 2015-08-07 23:50:48 +09:00
parser.h widl: Support for toggling and checking status for warnings, support for warning 2368. 2016-04-12 12:54:09 +09:00
parser.l widl: Support for toggling and checking status for warnings, support for warning 2368. 2016-04-12 12:54:09 +09:00
parser.y widl: Accept known type as library name. 2017-01-30 21:38:47 +01:00
proxy.c widl: Fix compiler warnings with flag -Wunused-macros. 2014-12-10 13:31:01 +01:00
register.c widl: Include resource id in typelib path if not default. 2013-11-12 19:06:42 +01:00
server.c widl: Avoid FALSE:TRUE conditional expressions. 2012-08-15 12:15:13 +02:00
typegen.c widl: Added support for namespaced enums. 2015-08-07 23:50:48 +09:00
typegen.h
typelib.c widl: Try to find imported typelib using .tlb extension if it wasn't specified. 2017-06-16 15:34:04 +02:00
typelib.h
typelib_struct.h tools: Assorted comment spelling fixes. 2016-04-19 14:57:30 +09:00
typetree.c widl: Avoid generating duplicate typelib entries for structure tag names. 2015-11-05 18:31:53 +09:00
typetree.h widl: Added support for namespaced structs. 2015-08-13 15:03:22 +09:00
utils.c widl: Alloc big enough buffer in dup_basename to handle registration suffix. 2012-10-08 12:54:55 +02:00
utils.h
widl.c widl: Added support for -ns_prefix option. 2015-08-05 23:42:45 +09:00
widl.h widl: Added support for -ns_prefix option. 2015-08-05 23:42:45 +09:00
widl.man.in widl: Added support for -ns_prefix option. 2015-08-05 23:42:45 +09:00
widltypes.h widl: Handle "midl_pragma warning" statement in parser. 2016-04-12 12:27:17 +09:00
write_msft.c widl: Add missing width and alignment for VARIANT. 2017-02-27 12:38:25 +01:00