Fix build
All checks were successful
Builds / XTchain (minimal, linux) (push) Successful in 1m36s
Builds / XTchain (minimal, windows) (push) Successful in 1m34s
Builds / XTchain (full, linux) (push) Successful in 1h36m10s
Builds / XTchain (full, windows) (push) Successful in 1h37m6s

This commit is contained in:
2025-09-29 19:09:09 +02:00
parent 50dbda6ccc
commit 32a254468b

View File

@@ -14,9 +14,8 @@
#include "xtchain.h" #include "xtchain.h"
#define XTCSPECC_VERSION "1.2"
#define ARRAYSIZE(a) (sizeof(a) / sizeof((a)[0])) #define XTCSPECC_VERSION "1.2"
typedef struct _STRING typedef struct _STRING
{ {
@@ -77,12 +76,12 @@ enum
enum enum
{ {
CC_STDCALL, CCONV_STDCALL,
CC_CDECL, CCONV_CDECL,
CC_FASTCALL, CCONV_FASTCALL,
CC_THISCALL, CCONV_THISCALL,
CC_EXTERN, CCONV_EXTERN,
CC_STUB, CCONV_STUB,
}; };
enum enum
@@ -257,11 +256,11 @@ OutputLine_stub(FILE *file,
int bRelay = 0; int bRelay = 0;
int bInPrototype = 0; int bInPrototype = 0;
if(pexp->nCallingConvention != CC_STUB && if(pexp->nCallingConvention != CCONV_STUB &&
(pexp->uFlags & FL_STUB) == 0) (pexp->uFlags & FL_STUB) == 0)
{ {
/* Only relay trace stdcall C functions */ /* Only relay trace stdcall C functions */
if(!gbTracing || (pexp->nCallingConvention != CC_STDCALL) || if(!gbTracing || (pexp->nCallingConvention != CCONV_STDCALL) ||
(pexp->uFlags & FL_NORELAY) || (pexp->uFlags & FL_NORELAY) ||
(pexp->strName.buf[0] == '?')) (pexp->strName.buf[0] == '?'))
{ {
@@ -294,7 +293,7 @@ OutputLine_stub(FILE *file,
} }
if((giArch == ARCH_X86) && if((giArch == ARCH_X86) &&
pexp->nCallingConvention == CC_STDCALL) pexp->nCallingConvention == CCONV_STDCALL)
{ {
fprintf(file, "__stdcall "); fprintf(file, "__stdcall ");
} }
@@ -398,7 +397,7 @@ OutputLine_stub(FILE *file,
} }
fprintf(file, ");\n"); fprintf(file, ");\n");
if(pexp->nCallingConvention == CC_STUB) if(pexp->nCallingConvention == CCONV_STUB)
{ {
fprintf(file, "\t__wine_spec_unimplemented_stub(\"%s\", __FUNCTION__);\n", pszDllName); fprintf(file, "\t__wine_spec_unimplemented_stub(\"%s\", __FUNCTION__);\n", pszDllName);
} }
@@ -510,8 +509,8 @@ PrintName(FILE *fileDest,
fprintf(fileDest, "%.*s", nNameLength, pcName); fprintf(fileDest, "%.*s", nNameLength, pcName);
} }
else if(fDeco && else if(fDeco &&
((pexp->nCallingConvention == CC_STDCALL) || ((pexp->nCallingConvention == CCONV_STDCALL) ||
(pexp->nCallingConvention == CC_FASTCALL))) (pexp->nCallingConvention == CCONV_FASTCALL)))
{ {
/* Scan for a dll forwarding dot */ /* Scan for a dll forwarding dot */
pcDot = ScanToken(pcName, '.'); pcDot = ScanToken(pcName, '.');
@@ -536,9 +535,9 @@ PrintName(FILE *fileDest,
else else
{ {
/* Print the prefix, but skip it for stdcall */ /* Print the prefix, but skip it for stdcall */
if(pexp->nCallingConvention != CC_STDCALL) if(pexp->nCallingConvention != CCONV_STDCALL)
{ {
fprintf(fileDest, "%c", pexp->nCallingConvention == CC_FASTCALL ? '@' : '_'); fprintf(fileDest, "%c", pexp->nCallingConvention == CCONV_FASTCALL ? '@' : '_');
} }
/* Print the name with trailing decoration */ /* Print the name with trailing decoration */
@@ -581,8 +580,8 @@ OutputLine_def(FILE *fileDest,
/* If the original name was decorated, use decoration in the forwarder as well */ /* If the original name was decorated, use decoration in the forwarder as well */
if((giArch == ARCH_X86) && ScanToken(pexp->strName.buf, '@') && if((giArch == ARCH_X86) && ScanToken(pexp->strName.buf, '@') &&
!ScanToken(pexp->strTarget.buf, '@') && !ScanToken(pexp->strTarget.buf, '@') &&
((pexp->nCallingConvention == CC_STDCALL) || ((pexp->nCallingConvention == CCONV_STDCALL) ||
(pexp->nCallingConvention == CC_FASTCALL)) ) (pexp->nCallingConvention == CCONV_FASTCALL)) )
{ {
PrintName(fileDest, pexp, &pexp->strTarget, 1); PrintName(fileDest, pexp, &pexp->strTarget, 1);
} }
@@ -593,13 +592,13 @@ OutputLine_def(FILE *fileDest,
} }
} }
} }
else if(((pexp->uFlags & FL_STUB) || (pexp->nCallingConvention == CC_STUB)) && else if(((pexp->uFlags & FL_STUB) || (pexp->nCallingConvention == CCONV_STUB)) &&
(pexp->strName.buf[0] == '?')) (pexp->strName.buf[0] == '?'))
{ {
/* C++ stubs are forwarded to C stubs */ /* C++ stubs are forwarded to C stubs */
fprintf(fileDest, "=stub_function%d", pexp->nNumber); fprintf(fileDest, "=stub_function%d", pexp->nNumber);
} }
else if(gbTracing && ((pexp->uFlags & FL_NORELAY) == 0) && (pexp->nCallingConvention == CC_STDCALL) && else if(gbTracing && ((pexp->uFlags & FL_NORELAY) == 0) && (pexp->nCallingConvention == CCONV_STDCALL) &&
(pexp->strName.buf[0] != '?')) (pexp->strName.buf[0] != '?'))
{ {
/* Redirect it to the relay-tracing trampoline */ /* Redirect it to the relay-tracing trampoline */
@@ -616,7 +615,7 @@ OutputLine_def(FILE *fileDest,
{ {
fprintf(fileDest, " PRIVATE"); fprintf(fileDest, " PRIVATE");
} }
else if(pexp->nCallingConvention == CC_EXTERN) else if(pexp->nCallingConvention == CCONV_EXTERN)
{ {
fprintf(fileDest, " DATA"); fprintf(fileDest, " DATA");
} }
@@ -798,28 +797,28 @@ ParseFile(char* pcStart,
/* Now we should get the type */ /* Now we should get the type */
if(CompareToken(pc, "stdcall")) if(CompareToken(pc, "stdcall"))
{ {
exp.nCallingConvention = CC_STDCALL; exp.nCallingConvention = CCONV_STDCALL;
} }
else if(CompareToken(pc, "cdecl") || else if(CompareToken(pc, "cdecl") ||
CompareToken(pc, "varargs")) CompareToken(pc, "varargs"))
{ {
exp.nCallingConvention = CC_CDECL; exp.nCallingConvention = CCONV_CDECL;
} }
else if(CompareToken(pc, "fastcall")) else if(CompareToken(pc, "fastcall"))
{ {
exp.nCallingConvention = CC_FASTCALL; exp.nCallingConvention = CCONV_FASTCALL;
} }
else if(CompareToken(pc, "thiscall")) else if(CompareToken(pc, "thiscall"))
{ {
exp.nCallingConvention = CC_THISCALL; exp.nCallingConvention = CCONV_THISCALL;
} }
else if(CompareToken(pc, "extern")) else if(CompareToken(pc, "extern"))
{ {
exp.nCallingConvention = CC_EXTERN; exp.nCallingConvention = CCONV_EXTERN;
} }
else if(CompareToken(pc, "stub")) else if(CompareToken(pc, "stub"))
{ {
exp.nCallingConvention = CC_STUB; exp.nCallingConvention = CCONV_STUB;
} }
else else
{ {
@@ -986,8 +985,8 @@ ParseFile(char* pcStart,
/* Handle parameters */ /* Handle parameters */
exp.nStackBytes = 0; exp.nStackBytes = 0;
if(exp.nCallingConvention != CC_EXTERN && if(exp.nCallingConvention != CCONV_EXTERN &&
exp.nCallingConvention != CC_STUB) exp.nCallingConvention != CCONV_STUB)
{ {
/* Go to next token */ /* Go to next token */
if(!(pc = NextToken(pc))) if(!(pc = NextToken(pc)))
@@ -1069,7 +1068,7 @@ ParseFile(char* pcStart,
} }
/* Handle special stub cases */ /* Handle special stub cases */
if(exp.nCallingConvention == CC_STUB) if(exp.nCallingConvention == CCONV_STUB)
{ {
/* Check for c++ mangled name */ /* Check for c++ mangled name */
if(pc[0] == '?') if(pc[0] == '?')
@@ -1093,7 +1092,7 @@ ParseFile(char* pcStart,
} }
exp.nStackBytes = atoi(p + 1); exp.nStackBytes = atoi(p + 1);
exp.nArgCount = exp.nStackBytes / 4; exp.nArgCount = exp.nStackBytes / 4;
exp.nCallingConvention = CC_STDCALL; exp.nCallingConvention = CCONV_STDCALL;
exp.uFlags |= FL_STUB; exp.uFlags |= FL_STUB;
for(i = 0; i < exp.nArgCount; i++) for(i = 0; i < exp.nArgCount; i++)
{ {