Commit graph

6681 commits

Author SHA1 Message Date
Rémi Bernon ee908ad076 widl: Use mangled namespace names in typedef pointer types. 2024-06-03 23:24:59 +02:00
Elizabeth Figura 93d50fd9de widl: Do not write type definitions for types defined in an imported header.
midl does not, and this would result in redefinition errors.

An equivalent (and arguably a bit more declarative) way to do this would be to
keep track in the parser whether a type or typedef statement is actually a
definition or not, and record that information in the statement_t. However, this
would require passing additional information alongside the type_t from each
relevant bison rule, which would thrash a lot of code.
2024-06-03 23:24:59 +02:00
Elizabeth Figura 1db2eaf0b3 widl: Update the type location in define_type().
This improves error reporting for the following IDL:

    interface apple;

    [uuid(12345678-1234-1234-1234-123456654321)]
    interface apple {void func(void);}
    [uuid(12345678-1234-1234-1234-123456654321)]
    interface apple {void func(void);}

Previously widl would report:

test2.idl:19:34: error: type apple already defined at test2.idl:2

This changes it to refer to line 5, where the interface is actually defined.
2024-06-03 23:24:59 +02:00
Elizabeth Figura 1522d7b727 widl: Factor out a define_type() helper. 2024-06-03 23:24:59 +02:00
Elizabeth Figura da8d81c63d widl: Invert "declonly".
This makes the logic around it a bit simpler, and I find it easier to understand as well.
2024-06-03 23:24:59 +02:00
Elizabeth Figura 9839a0d68d widl: Allow using UDTs with the keyword even when the identifier is also a typedef.
E.g. in cases like

    typedef int apple;
    struct apple { ... };

allow subsequently using "struct apple" in future expressions.
Note that this already worked for UDT definitions (so the above example by
itself was legal in widl), but any attempt to use the defined type would result
in a syntax error.
2024-06-03 23:24:59 +02:00
Elizabeth Figura 07243c4e12 widl: Assign to the right location variable.
yyloc is an internal variable; we want to assign to yylloc here.

This fixes error reporting.

Fixes: 3b12583db0
2024-06-03 23:24:59 +02:00
Eric Pouech 95e6302e82 winedump: Dump Memory64List streams in minidumps.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:26 +02:00
Eric Pouech ec61ad8b15 winedump: Don't dump twice.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:26 +02:00
Eric Pouech 0327b00d10 winedump: Dump correct handle information for minidump.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:23 +02:00
Alexandre Julliard 02a6ad92ab winedump: Dump exception data for known exception handlers. 2024-05-30 19:47:37 +02:00
Alexandre Julliard bb8ef91f46 winedump: Print the export or import name of exception handlers. 2024-05-30 14:38:01 +02:00
Alexandre Julliard 855017063a winedump: Print exported function names in the exception data. 2024-05-30 13:32:28 +02:00
Jacek Caban b210a20413 gitlab: Use --enable-werror for Clang builds. 2024-05-24 21:17:57 +02:00
Alexandre Julliard a03bd94204 winegcc: Don't print a potentially reallocated pointer. 2024-05-24 18:42:22 +02:00
Esme Povirk d79eab9776 gitlab: Add unzip to build image.
I would like to reuse this build image for the Wine Mono CI
process (so that I don't have to separately maintain an image
that can run current Wine), but I need unzip to download and
extract artifacts from Wine's CI process.
2024-05-20 11:56:38 +02:00
Eric Pouech d45cbca378 winedump: Correctly unmangle qualified pointer to function/method.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-17 19:48:58 +02:00
Eric Pouech d42b1d56b5 winedump: Don't consider end of list encoding as real data types.
This allows while unmangling:
- to avoid considering them as "real" datatypes in other contexts
- to handle better void (which is only supported as single argument
  in function args list, while is a fully acceptable datatype
  in template args list)

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-17 19:48:58 +02:00
Eric Pouech 3a95341ef6 winedump: Demangle std::nullptr_t datatype.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-16 23:09:05 +02:00
Piotr Caban bdba9407d9 winedump: Handle empty list in variadic template. 2024-05-14 21:03:58 +02:00
Jacek Caban ab9201be5c winebuild: Use .drectve section for exports on ARM64EC. 2024-05-14 21:03:58 +02:00
Alexandre Julliard 6b4ab3be97 widl: Don't generate empty interface registrations. 2024-05-07 22:49:44 +02:00
Alexandre Julliard e86e6a6f48 winedump: Dump typelib resources in structured format. 2024-05-06 22:20:24 +02:00
Alexandre Julliard 3c2d6128fe winedump: Dump registry scripts resources as text. 2024-05-05 12:19:16 +02:00
Alexandre Julliard da387a9b56 nls: Update locale data to CLDR version 45. 2024-05-04 09:56:23 +02:00
Alexandre Julliard 64923f3fee widl: Default to fully interpreted stubs mode. 2024-05-02 09:22:40 +02:00
Alexandre Julliard 323cff8f63 widl: Fix correlation offset for unencapsulated unions in interpreted mode. 2024-05-01 12:41:37 +02:00
Alexandre Julliard 3e2a999013 makefiles: Support building files for x86-64 architecture on ARM64EC.
Based on a patch by Jacek Caban.
2024-04-30 20:36:48 +02:00
Brendan Shanks 563ef82416 widl: Use hardcoded build time in TLB custom data.
This makes builds reproducible, and matches the current MIDL behavior
(except that MIDL's string representation will vary with the build machine
timezone).
2024-04-29 17:35:26 +02:00
Paul Gofman 04a2917f6b ntdll: Store exception reporting flags in server context. 2024-04-26 23:21:57 +02:00
Dmitry Timoshkov ce6fe5d06e widl: Fix calculation of the SLTG library block size.
This patch fixes a regression in comparison with SLTG generator in wine-staging,
and allows oleview.exe from PSDK correctly load SLTG typelib generated by widl.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-25 21:10:27 +02:00
Dmitry Timoshkov 13e1259754 widl: Add support for function parameter flags to SLTG typelib generator.
This makes stdole32.tlb generated by widl have proper [in,out,retval]
parameter flags.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:19 +02:00
Dmitry Timoshkov 202acc52eb widl: Set the lowest bit in the param name to indicate whether type description follows the name.
It looks like the lowest bit in the param name offset actually indicates
whether type description follows the name, and since the name offsets are
always aligned that makes sense.

This makes oleview.exe from PSDK running under Windows7 correctly show mix
of different very complex and relatively simple type descriptions generated
by widl's SLTG generator.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:17 +02:00
Dmitry Timoshkov 918425bbe9 widl: Create library block index right after the CompObj one.
Otherwise Wine's oleaut32 refuses to load a typelib.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:14 +02:00
Dmitry Timoshkov 62223ed995 widl: Make automatic dispid generation scheme better match what midl does.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:14 +02:00
Esme Povirk e00762b961 mscoree: Update Wine Mono to 9.1.0. 2024-04-22 17:46:01 +02:00
Alexandre Julliard 2c2ac005f5 widl: Use x64 calling convention for ARM64EC. 2024-04-18 20:54:24 +02:00
Alexandre Julliard 57b145e468 widl: Clear RobustEarly flag also for data structure conformance. 2024-04-16 21:26:50 +02:00
Alexandre Julliard 235f76594e widl: Output register parameter assignments on ARM platforms. 2024-04-16 18:39:13 +02:00
Eric Pouech 30a7054879 winedump: Extend dumping of some minidump parts.
- extend dump information in misc stream
- dump token, thread name, memory info list streams

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:43 +02:00
Eric Pouech 73b653f514 winedump: Tidy up dumping minidump.
- homogenize dir entry
- print all thread id:s and RVA in hex
- improve some indentation

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech b89102173e winedump: Support a couple of 'section' options (minidump).
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech 2253504aa5 winedump: Simplify unicode string printing (minidump).
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech facae70c5e winedump: Add helpers to print DWORD64 integers.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Alexandre Julliard 2f532567ff widl: Don't use a structure for NdrClientCall2 parameters on ARM. 2024-04-15 18:10:44 +02:00
Alexandre Julliard 84509acb16 widl: Correctly align stack parameters on ARM. 2024-04-15 18:10:44 +02:00
Alexandre Julliard 377f9f8de9 widl: Only pass power of 2 structures by value on x86-64. 2024-04-15 18:10:44 +02:00
Alexandre Julliard 9cda4233df widl: Pass 16-byte structures by value on ARM64. 2024-04-15 18:10:44 +02:00
Jacek Caban ba50573f91 makedep: Use hybrid ARM64X images for ARM64EC. 2024-04-11 16:29:35 -05:00
Jacek Caban 00198c4084 winegcc: Add -marm64x option for linking ARM64X images. 2024-04-09 12:07:27 -05:00