typedef struct
{
char *pcName;
- size_t nNameLength;
+ int nNameLength;
char *pcRedirection;
int nRedirectionLength;
int nCallingConvention;
ARG_WSTR,
ARG_DBL,
ARG_INT64,
+ ARG_INT128,
ARG_FLOAT
};
case ARG_PTR: fprintf(file, "void*"); break;
case ARG_STR: fprintf(file, "char*"); break;
case ARG_WSTR: fprintf(file, "wchar_t*"); break;
- case ARG_DBL: case ARG_INT64 : fprintf(file, "__int64"); break;
+ case ARG_DBL:
+ case ARG_INT64 : fprintf(file, "__int64"); break;
+ case ARG_INT128 : fprintf(file, "__int128"); break;
case ARG_FLOAT: fprintf(file, "float"); break;
}
fprintf(file, " a%d", i);
case ARG_WSTR: fprintf(file, "'%%ws'"); break;
case ARG_DBL: fprintf(file, "%%f"); break;
case ARG_INT64: fprintf(file, "%%\"PRix64\""); break;
+ case ARG_INT128: fprintf(file, "%%\"PRix128\""); break;
case ARG_FLOAT: fprintf(file, "%%f"); break;
}
}
case ARG_WSTR: fprintf(file, "(wchar_t*)a%d", i); break;
case ARG_DBL: fprintf(file, "(double)a%d", i); break;
case ARG_INT64: fprintf(file, "(__int64)a%d", i); break;
+ case ARG_INT128: fprintf(file, "(__int128)a%d", i); break;
case ARG_FLOAT: fprintf(file, "(float)a%d", i); break;
}
}
PrintName(FILE *fileDest, EXPORT *pexp, char *pszPrefix, int fRedir, int fDeco)
{
char *pcName = fRedir ? pexp->pcRedirection : pexp->pcName;
- size_t nNameLength = fRedir ? pexp->nRedirectionLength : pexp->nNameLength;
+ int nNameLength = fRedir ? pexp->nRedirectionLength : pexp->nNameLength;
/* Handle autoname */
if (nNameLength == 1 && pcName[0] == '@')
exp.nStackBytes += 8;
exp.anArgs[exp.nArgCount] = ARG_INT64;
}
+ else if (CompareToken(pc, "int128"))
+ {
+ exp.nStackBytes += 16;
+ exp.anArgs[exp.nArgCount] = ARG_INT128;
+ }
else if (CompareToken(pc, "float"))
{
exp.nStackBytes += 4;
{
/* Check for stdcall name */
char *p = strchr(pc, '@');
- if (p && ((size_t)(p - pc) < exp.nNameLength))
+ if (p && (p - pc < exp.nNameLength))
{
int i;
- exp.nNameLength = p - pc;
+ exp.nNameLength = (int)(p - pc);
if (exp.nNameLength < 1)
{
fprintf(stderr, "error, @ in line %d\n", nLine);
}
/* Get optional redirection */
- if ((pc = NextToken(pc)))
+ pc = NextToken(pc);
+ if (pc)
{
exp.pcRedirection = pc;
exp.nRedirectionLength = TokenLength(pc);
char *pszSource, *pszDefFileName = 0, *pszStubFileName = 0, *pszLibStubName = 0;
char achDllName[40];
FILE *file;
- int result, i;
+ int result = 0, i;
if (argc < 2)
{