On Fri, 8 Nov 2024 05:26:37 GMT, Julian Waters <jwat...@openjdk.org> wrote:
>>> Can someone confirm that use of `__stdcall` has no affect on name >>> decorations, as there is no mention here about anything being ignored: >>> >>> https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170 >>> >>> I would have expected that if argument passing needs to use the stack then >>> the decorated name would still need to encode that somehow. >> >> In the page you mentioned: >> >> Format of a C decorated name >> The form of decoration for a C function depends on the calling convention >> used in its declaration, as shown in the following table. It's also the >> decoration format that's used when C++ code is declared to have extern "C" >> linkage. The default calling convention is __cdecl. **In a 64-bit >> environment, C or extern "C" functions are only decorated when using the >> __vectorcall calling convention**. > >> Can someone confirm that use of `__stdcall` has no affect on name >> decorations, as there is no mention here about anything being ignored: >> >> https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170 >> >> I would have expected that if argument passing needs to use the stack then >> the decorated name would still need to encode that somehow. > > Not __stdcall: https://godbolt.org/z/nvjTP5WPc > __stdcall: https://godbolt.org/z/1KejW44vY Thanks @TheShermanTanker . I see the arguments do affect the encoding but the `__stdcall` makes no difference. ------------- PR Comment: https://git.openjdk.org/jdk/pull/21744#issuecomment-2463816359