Skip to content

Conversation

@luadebug
Copy link
Contributor

@luadebug luadebug commented Oct 9, 2025

The problem is with the __fastcall calling convention syntax on non-MSVC compilers. The __fastcall is a Microsoft-specific calling convention that's not recognized by GCC/Clang.

/github/home/.xmake/packages/o/omath/v3.9.0/8998370ec7d64573a093ffd40b339792/include/omath/rev_eng/internal_rev_object.hpp:32:49: error: expected ‘;’ before ‘(’ token [-Wtemplate-body]
32 | using VirtualMethodType = ReturnType(__fastcall*)(void*, decltype(arg_list)...);
| ^
/github/home/.xmake/packages/o/omath/v3.9.0/8998370ec7d64573a093ffd40b339792/include/omath/rev_eng/internal_rev_object.hpp:34:39: error: ‘VirtualMethodType’ does not name a type [-Wtemplate-body]
34 | return (reinterpret_cast<VirtualMethodType**>(this))[id](this, arg_list...);
| ^~~~~~~~~~~~~~~~~
/github/home/.xmake/packages/o/omath/v3.9.0/8998370ec7d64573a093ffd40b339792/include/omath/rev_eng/internal_rev_object.hpp:34:56: error: expected ‘>’ before ‘’ token [-Wtemplate-body]
34 | return (*reinterpret_cast<VirtualMethodType**>(this))[id](this, arg_list...);
| ^

microsoft/vcpkg#47731
xmake-io/xmake-repo#8349

@luadebug luadebug changed the title Update internal_rev_object.hpp internal_rev_object.hpp: do not use __fastcall on non-Windows platforms Oct 9, 2025
@luadebug luadebug changed the title internal_rev_object.hpp: do not use __fastcall on non-Windows platforms internal_rev_object.hpp: do not use __fastcall for non-Windows platforms Oct 9, 2025
@orange-cpp orange-cpp merged commit 81ed5f8 into orange-cpp:main Oct 10, 2025
3 checks passed
@luadebug luadebug deleted the patch-1 branch October 10, 2025 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants