Module: wine Branch: master Commit: cb86bb92d2c35ed0d42c5f5677d5068a52b49203 URL: https://gitlab.winehq.org/wine/wine/-/commit/cb86bb92d2c35ed0d42c5f5677d5068...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Dec 16 17:07:28 2022 +0100
winebuild: Disable relay for non-standard fastcall parameters.
---
tools/winebuild/parser.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c index 11b422bd435..141ed80eb26 100644 --- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -309,16 +309,9 @@ static int parse_spec_arguments( ORDDEF *odp, DLLSPEC *spec, int optional ) error( "A fastcall function must use the stdcall convention\n" ); return 0; } - if (!i || (odp->u.func.args[0] != ARG_PTR && odp->u.func.args[0] != ARG_LONG)) - { - error( "First argument of a fastcall function must be a pointer or integer\n" ); - return 0; - } - if (i > 1 && odp->u.func.args[1] != ARG_PTR && odp->u.func.args[1] != ARG_LONG) - { - error( "Second argument of a fastcall function must be a pointer or integer\n" ); - return 0; - } + if ((i && odp->u.func.args[0] != ARG_PTR && odp->u.func.args[0] != ARG_LONG) || + (i > 1 && odp->u.func.args[1] != ARG_PTR && odp->u.func.args[1] != ARG_LONG)) + odp->flags |= FLAG_NORELAY; /* no relay debug possible for non-standard fastcall args */ } if (odp->flags & FLAG_SYSCALL) {